From 581c640149b304cc258ffefdea2374736f926148 Mon Sep 17 00:00:00 2001 From: Michael Fabian Dirks Date: Mon, 3 Oct 2016 17:11:15 +0200 Subject: [PATCH] Uh, Updates? --- BlitzBasicIDE/blitzide.rc | 6 +- BlitzBasicIDE/mainframe.cpp | 8 +- LinkerLib/image_util.cpp | 22 ++-- LinkerLib/linker.cpp | 4 +- RuntimeLib/basic.cpp | 24 ++--- RuntimeLib/bbbank.cpp | 6 +- RuntimeLib/bbblitz3d.cpp | 56 +++++----- RuntimeLib/bbfilesystem.cpp | 8 +- RuntimeLib/bbgraphics.cpp | 22 ++-- RuntimeLib/bbruntime.cpp | 6 +- RuntimeLib/bbsockets.cpp | 10 +- RuntimeLib/bbstream.cpp | 8 +- RuntimeLib/bbstring.cpp | 12 +-- RuntimeLib/multiplay.cpp | 20 ++-- RuntimeLib/multiplay_setup.cpp | 8 +- blitz/libs.cpp | 16 +-- blitz3d/animation.cpp | 6 +- blitz3d/cachedtexture.cpp | 6 +- blitz3d/geom.h | 2 - blitz3d/listener.h | 2 +- blitz3d/loader_3ds.cpp | 8 +- blitz3d/loader_b3d.cpp | 12 +-- blitz3d/loader_x.cpp | 6 +- blitz3d/md2model.cpp | 4 +- blitz3d/md2model.h | 2 +- blitz3d/meshcollider.cpp | 4 +- blitz3d/meshloader.cpp | 4 +- blitz3d/meshmodel.cpp | 6 +- blitz3d/meshmodel.h | 2 +- blitz3d/meshutil.cpp | 8 +- blitz3d/mirror.h | 2 +- blitz3d/object.cpp | 2 +- blitz3d/object.h | 2 +- blitz3d/pivot.h | 2 +- blitz3d/planemodel.cpp | 2 +- blitz3d/planemodel.h | 2 +- blitz3d/q3bspmodel.cpp | 2 +- blitz3d/q3bspmodel.h | 2 +- blitz3d/q3bsprep.cpp | 14 +-- blitz3d/sprite.h | 2 +- blitz3d/terrain.cpp | 2 +- blitz3d/terrainrep.cpp | 6 +- blitz3d/texture.cpp | 6 +- compiler/codegen_x86/codegen_x86.cpp | 90 ++++++++-------- compiler/decl.cpp | 2 +- compiler/declnode.cpp | 20 ++-- compiler/environ.cpp | 8 +- compiler/exprnode.cpp | 130 +++++++++++----------- compiler/node.cpp | 62 +++++------ compiler/parser.cpp | 156 +++++++++++++-------------- compiler/prognode.cpp | 4 +- compiler/stmtnode.cpp | 22 ++-- gxruntime/gxaudio.cpp | 12 +-- gxruntime/gxcanvas.cpp | 6 +- gxruntime/gxfilesystem.cpp | 2 +- gxruntime/gxgraphics.cpp | 24 ++--- gxruntime/gxinput.cpp | 10 +- gxruntime/gxmesh.cpp | 2 +- gxruntime/gxruntime.cpp | 22 ++-- gxruntime/gxscene.cpp | 2 +- stdutil/stdutil.cpp | 8 +- stdutil/stdutil.h | 22 +--- 62 files changed, 469 insertions(+), 489 deletions(-) diff --git a/BlitzBasicIDE/blitzide.rc b/BlitzBasicIDE/blitzide.rc index d232690..513d9e0 100644 --- a/BlitzBasicIDE/blitzide.rc +++ b/BlitzBasicIDE/blitzide.rc @@ -57,7 +57,7 @@ IDR_MAINFRAME MENU DISCARDABLE BEGIN POPUP "&File" BEGIN - MENUITEM "&New\tCtrl+N", ID_NEW + MENUITEM "&New\tCtrl+N", Inew MENUITEM "&Open...\tCtrl+O", ID_OPEN MENUITEM SEPARATOR MENUITEM "&Close\tCtrl+F4", ID_CLOSE @@ -118,7 +118,7 @@ IDR_MAINFRAME ACCELERATORS DISCARDABLE BEGIN "F", ID_FIND, VIRTKEY, CONTROL, NOINVERT "H", ID_HOME, VIRTKEY, CONTROL, NOINVERT - "N", ID_NEW, VIRTKEY, CONTROL, NOINVERT + "N", Inew, VIRTKEY, CONTROL, NOINVERT "O", ID_OPEN, VIRTKEY, CONTROL, NOINVERT "P", ID_PRINT, VIRTKEY, CONTROL, NOINVERT "R", ID_REPLACE, VIRTKEY, CONTROL, NOINVERT @@ -228,7 +228,7 @@ BEGIN ID_STEP "Strp program\nStep" ID_TRACE "Trace program\nTrace" ID_END "End program\nEnd" - ID_NEW "Start a new program\nNew" + Inew "Start a new program\nNew" ID_FINDNEXT "Find next\nFind next" ID_RUN "Continue Program\nContinue" ID_STOP "Pause program\nPause" diff --git a/BlitzBasicIDE/mainframe.cpp b/BlitzBasicIDE/mainframe.cpp index a786ccc..6435af9 100644 --- a/BlitzBasicIDE/mainframe.cpp +++ b/BlitzBasicIDE/mainframe.cpp @@ -20,7 +20,7 @@ BEGIN_MESSAGE_MAP( MainFrame,CFrameWnd ) ON_WM_SIZE() ON_WM_ACTIVATE() - ON_COMMAND( ID_NEW,fileNew ) + ON_COMMAND( Inew,fileNew ) ON_COMMAND( ID_OPEN,fileOpen ) ON_COMMAND( ID_SAVE,fileSave ) ON_COMMAND( ID_SAVEAS,fileSaveAs ) @@ -54,7 +54,7 @@ BEGIN_MESSAGE_MAP( MainFrame,CFrameWnd ) ON_COMMAND( ID_FORWARD,helpForward ) ON_COMMAND( ID_ABOUT,helpAbout ) - ON_UPDATE_COMMAND_UI( ID_NEW,updateCmdUI ) + ON_UPDATE_COMMAND_UI( Inew,updateCmdUI ) ON_UPDATE_COMMAND_UI( ID_OPEN,updateCmdUI ) ON_UPDATE_COMMAND_UI( ID_SAVE,updateCmdUI ) ON_UPDATE_COMMAND_UI( ID_SAVEAS,updateCmdUI ) @@ -112,7 +112,7 @@ int MainFrame::OnCreate( LPCREATESTRUCT lpCreateStruct ){ static HBITMAP toolbmp; static SIZE imgsz,butsz; static UINT toolbuts[]={ - ID_NEW,ID_OPEN,ID_SAVE,ID_CLOSE,ID_SEPARATOR, + Inew,ID_OPEN,ID_SAVE,ID_CLOSE,ID_SEPARATOR, ID_CUT,ID_COPY,ID_PASTE,ID_SEPARATOR, ID_FIND,ID_SEPARATOR, ID_EXECUTE,ID_SEPARATOR, @@ -835,7 +835,7 @@ void MainFrame::updateCmdUI( CCmdUI *ui ){ Editor *e=getEditor(); switch( ui->m_nID ){ - case ID_NEW:case ID_OPEN:case ID_HOME: + case Inew:case ID_OPEN:case ID_HOME: ui->Enable( true ); break; case ID_DEBUG: diff --git a/LinkerLib/image_util.cpp b/LinkerLib/image_util.cpp index 99cf71a..8b175ed 100644 --- a/LinkerLib/image_util.cpp +++ b/LinkerLib/image_util.cpp @@ -107,7 +107,7 @@ static void openRsrcDir( Section *s,int off,Rsrc *p ){ Rdir *dir=(Rdir*)(data+off); Rent *ent=(Rent*)(dir+1); for( int k=0;knum_ids;++ent,++k ){ - Rsrc *r=d_new Rsrc( ent->id,p ); + Rsrc *r=new Rsrc( ent->id,p ); if( ent->data<0 ){ //a node - offset is another dir openRsrcDir( s,ent->data&0x7fffffff,r ); }else{ //a leaf @@ -115,7 +115,7 @@ static void openRsrcDir( Section *s,int off,Rsrc *p ){ // cout<<"dat addr:"<addr<<" size:"<size<size; void *src=dat->addr-s->sect.virt_addr+data; - void *dest=d_new char[sz]; + void *dest=new char[sz]; memcpy( dest,src,sz ); r->data=dest; r->data_sz=sz; @@ -124,7 +124,7 @@ static void openRsrcDir( Section *s,int off,Rsrc *p ){ } static void openRsrcTree( Section *s ){ - rsrc_root=d_new Rsrc( 0,0 ); + rsrc_root=new Rsrc( 0,0 ); openRsrcDir( s,0,rsrc_root ); } @@ -217,7 +217,7 @@ static void closeRsrcTree( Section *s ){ s->sect.data_size=data_sz; delete[] s->data; - s->data=d_new char[data_sz]; + s->data=new char[data_sz]; closeRsrcDir( s,0,rsrc_root ); delete rsrc_root; @@ -244,27 +244,27 @@ static void loadImage( istream &in ){ //read stub in.seekg( 0x3c ); in.read( (char*)&stub_sz,4 ); - stub_sz+=4;stub=d_new char[stub_sz]; + stub_sz+=4;stub=new char[stub_sz]; in.seekg( 0 );in.read( stub,stub_sz ); //read head - head=d_new Head; + head=new Head; head_sz=sizeof(Head); in.read( (char*)head,head_sz ); //read opts - opts=d_new Opts; + opts=new Opts; opts_sz=sizeof(Opts); in.read( (char*)opts,opts_sz ); //read data dirs ddir_sz=opts->dir_entries * sizeof(DDir); - ddir=(DDir*)d_new char[ddir_sz]; + ddir=(DDir*)new char[ddir_sz]; in.read( (char*)ddir,ddir_sz ); //read sects... for( k=0;knum_sects;++k ){ - Section *s=d_new Section; + Section *s=new Section; in.read( (char*)&s->sect,sizeof(Sect) ); sections.push_back( s ); } @@ -273,7 +273,7 @@ static void loadImage( istream &in ){ Section *s=sections[k]; if( !s->sect.data_addr ) continue; int data_sz=s->sect.data_size; - s->data=d_new char[data_sz];//char[s->sect.virt_size]; + s->data=new char[data_sz];//char[s->sect.virt_size]; //memset( s->data,0,s->sect.virt_size ); in.seekg( s->sect.data_addr ); in.read( s->data,data_sz ); @@ -336,7 +336,7 @@ bool replaceRsrc( int type,int id,int lang,void *data,int data_sz ){ if( Rsrc *r=findRsrc( type,id,lang ) ){ delete[] r->data; r->data_sz=data_sz; - r->data=d_new char[data_sz]; + r->data=new char[data_sz]; memcpy( r->data,data,data_sz ); closeRsrcTree( s ); return true; diff --git a/LinkerLib/linker.cpp b/LinkerLib/linker.cpp index c4c8c2a..37b3f45 100644 --- a/LinkerLib/linker.cpp +++ b/LinkerLib/linker.cpp @@ -44,7 +44,7 @@ private: data_sz=data_sz/2+data_sz; if( data_szfields) return d_new BBStr("[NULL]"); + if (!obj || !obj->fields) return new BBStr("[NULL]"); static BBObj *root; static int recurs_cnt; - if (obj == root) return d_new BBStr("[ROOT]"); - if (recurs_cnt == 8) return d_new BBStr("...."); + if (obj == root) return new BBStr("[ROOT]"); + if (recurs_cnt == 8) return new BBStr("...."); ++recurs_cnt; BBObj *oldRoot = root; @@ -392,7 +392,7 @@ BBStr *_bbObjToStr(BBObj *obj) { BBObjType *type = obj->type; BBField *fields = obj->fields; - BBStr *s = d_new BBStr("["), *t; + BBStr *s = new BBStr("["), *t; for (int k = 0; k < type->fieldCnt; ++k) { if (k) *s += ','; switch (type->fieldTypes[k]->type) { @@ -467,9 +467,9 @@ float _bbReadFloat() { BBStr *_bbReadStr() { switch (dataPtr->fieldType) { case BBTYPE_END:ThrowRuntimeException("Out of data"); return 0; - case BBTYPE_INT:return d_new BBStr(itoa(dataPtr++->field.INT)); - case BBTYPE_FLT:return d_new BBStr(ftoa(dataPtr++->field.FLT)); - case BBTYPE_CSTR:return d_new BBStr(dataPtr++->field.CSTR); + case BBTYPE_INT:return new BBStr(itoa(dataPtr++->field.INT)); + case BBTYPE_FLT:return new BBStr(ftoa(dataPtr++->field.FLT)); + case BBTYPE_CSTR:return new BBStr(dataPtr++->field.CSTR); default:ThrowRuntimeException("Bad data type"); return 0; } } diff --git a/RuntimeLib/bbbank.cpp b/RuntimeLib/bbbank.cpp index e8cd9ff..627a7ee 100644 --- a/RuntimeLib/bbbank.cpp +++ b/RuntimeLib/bbbank.cpp @@ -9,7 +9,7 @@ struct bbBank{ bbBank( int sz ):size(sz){ capacity=(size+15)&~15; - data=d_new char[capacity]; + data=new char[capacity]; memset( data,0,size ); } virtual ~bbBank(){ @@ -21,7 +21,7 @@ struct bbBank{ capacity=capacity*3/2; if( n>capacity ) capacity=n; capacity=(capacity+15)&~15; - char *p=d_new char[capacity]; + char *p=new char[capacity]; memcpy( p,data,size ); delete[] data; data=p; @@ -47,7 +47,7 @@ static inline void debugBank( bbBank *b,int offset ){ } bbBank *bbCreateBank( int size ){ - bbBank *b=d_new bbBank( size ); + bbBank *b=new bbBank( size ); bank_set.insert( b ); return b; } diff --git a/RuntimeLib/bbblitz3d.cpp b/RuntimeLib/bbblitz3d.cpp index 733a285..a59e276 100644 --- a/RuntimeLib/bbblitz3d.cpp +++ b/RuntimeLib/bbblitz3d.cpp @@ -312,7 +312,7 @@ void bbRenderWorld( float tween ){ if( bbKeyHit( 0x58 ) ){ static int n; string t="screenshot"+itoa(++n)+".bmp"; - bbSaveBuffer( bbBackBuffer(),d_new BBStr(t) ); + bbSaveBuffer( bbBackBuffer(),new BBStr(t) ); } if( !stats_mode ) return; @@ -334,7 +334,7 @@ void bbRenderWorld( float tween ){ string t="FPS:"+t_fps+" UPS:"+t_ups+" RPS:"+t_rps+" TRIS:"+t_tris; - bbText( 0,bbGraphicsHeight()-bbFontHeight(),d_new BBStr(t),0,0 ); + bbText( 0,bbGraphicsHeight()-bbFontHeight(),new BBStr(t),0,0 ); } int bbTrisRendered(){ @@ -353,7 +353,7 @@ float bbStats3D( int n ){ // Texture * bbLoadTexture( BBStr *file,int flags ){ debug3d(); - Texture *t=d_new Texture( *file,flags );delete file; + Texture *t=new Texture( *file,flags );delete file; if( !t->getCanvas(0) ){ delete t;return 0; } texture_set.insert( t ); return t; @@ -361,7 +361,7 @@ Texture * bbLoadTexture( BBStr *file,int flags ){ Texture * bbLoadAnimTexture( BBStr *file,int flags,int w,int h,int first,int cnt ){ debug3d(); - Texture *t=d_new Texture( *file,flags,w,h,first,cnt ); + Texture *t=new Texture( *file,flags,w,h,first,cnt ); delete file; if( !t->getCanvas(0) ){ delete t; @@ -378,7 +378,7 @@ Texture * bbCreateTexture( int w,int h,int flags,int frames ){ ThrowRuntimeException( "Illegal number of texture frames" ); } } - Texture *t=d_new Texture( w,h,flags,frames ); + Texture *t=new Texture( w,h,flags,frames ); texture_set.insert( t ); return t; } @@ -427,7 +427,7 @@ int bbTextureHeight( Texture *t ){ BBStr *bbTextureName( Texture *t ){ debugTexture(t); CachedTexture *c=t->getCachedTexture(); - return c ? d_new BBStr( c->getName().c_str() ) : d_new BBStr(""); + return c ? new BBStr( c->getName().c_str() ) : new BBStr(""); } void bbSetCubeFace( Texture *t,int face ){ @@ -476,7 +476,7 @@ void bbTextureFilter( BBStr *t,int flags ){ //////////////////// Brush * bbCreateBrush( float r,float g,float b ){ debug3d(); - Brush *br=d_new Brush(); + Brush *br=new Brush(); br->setColor( Vector( r*ctof,g*ctof,b*ctof ) ); brush_set.insert( br ); return br; @@ -522,7 +522,7 @@ void bbBrushTexture( Brush *b,Texture *t,int frame,int index ){ Texture *bbGetBrushTexture( Brush *b,int index ){ debugBrush(b); - Texture *tex=d_new Texture(b->getTexture(index)); + Texture *tex=new Texture(b->getTexture(index)); texture_set.insert( tex ); return tex; } @@ -542,7 +542,7 @@ void bbBrushFX( Brush *b,int fx ){ /////////////////// Entity * bbCreateMesh( Entity *p ){ debugParent(p); - MeshModel *m=d_new MeshModel(); + MeshModel *m=new MeshModel(); return insertEntity( m,p ); } @@ -552,7 +552,7 @@ Entity * bbLoadMesh( BBStr *f,Entity *p ){ delete f; if( !e ) return 0; - MeshModel *m=d_new MeshModel(); + MeshModel *m=new MeshModel(); collapseMesh( m,e ); return insertEntity( m,p ); } @@ -597,7 +597,7 @@ Entity * bbCopyMesh( MeshModel *m,Entity *p ){ debugMesh(m); debugParent(p); - MeshModel *t=d_new MeshModel(); + MeshModel *t=new MeshModel(); t->add( *m ); return insertEntity( t,p ); } @@ -729,14 +729,14 @@ Surface * bbCreateSurface( MeshModel *m,Brush *b ){ } Brush *bbGetSurfaceBrush( Surface *s ){ - Brush *br=d_new Brush( s->getBrush() ); + Brush *br=new Brush( s->getBrush() ); brush_set.insert( br ); return br; } Brush *bbGetEntityBrush( Model *m ){ debugModel(m); - Brush *br=d_new Brush( m->getBrush() ); + Brush *br=new Brush( m->getBrush() ); brush_set.insert( br ); return br; } @@ -858,7 +858,7 @@ Entity * bbCreateCamera( Entity *p ){ debugParent(p); int x,y,w,h; gx_canvas->getViewport( &x,&y,&w,&h ); - Camera *c=d_new Camera(); + Camera *c=new Camera(); c->setViewport( x,y,w,h ); return insertEntity( c,p ); } @@ -1066,7 +1066,7 @@ int bbPickedTriangle(){ //////////////////// Entity * bbCreateLight( int type,Entity *p ){ debugParent(p); - Light *t=d_new Light( type ); + Light *t=new Light( type ); return insertEntity( t,p ); } @@ -1096,7 +1096,7 @@ void bbLightConeAngles( Light *light,float inner,float outer ){ //////////////////// Entity * bbCreatePivot( Entity *p ){ debugParent(p); - Pivot *t=d_new Pivot(); + Pivot *t=new Pivot(); return insertEntity( t,p ); } @@ -1105,7 +1105,7 @@ Entity * bbCreatePivot( Entity *p ){ ///////////////////// Entity * bbCreateSprite( Entity *p ){ debugParent(p); - Sprite *s=d_new Sprite(); + Sprite *s=new Sprite(); s->setFX( gxScene::FX_FULLBRIGHT ); return insertEntity( s,p ); } @@ -1114,7 +1114,7 @@ Entity * bbLoadSprite( BBStr *file,int flags,Entity *p ){ debugParent(p); Texture t( *file,flags ); delete file;if( !t.getCanvas(0) ) return 0; - Sprite *s=d_new Sprite(); + Sprite *s=new Sprite(); s->setTexture( 0,t,0 ); s->setFX( gxScene::FX_FULLBRIGHT ); @@ -1150,7 +1150,7 @@ void bbSpriteViewMode( Sprite *s,int mode ){ ///////////////////// Entity * bbCreateMirror( Entity *p ){ debugParent(p); - Mirror *t=d_new Mirror(); + Mirror *t=new Mirror(); return insertEntity( t,p ); } @@ -1162,7 +1162,7 @@ Entity * bbCreatePlane( int segs,Entity *p ){ debugParent(p); if( segs<1 || segs>20 ) ThrowRuntimeException( "Illegal number of segments" ); } - PlaneModel *t=d_new PlaneModel( segs ); + PlaneModel *t=new PlaneModel( segs ); return insertEntity( t,p ); } @@ -1171,7 +1171,7 @@ Entity * bbCreatePlane( int segs,Entity *p ){ ////////////////// Entity * bbLoadMD2( BBStr *file,Entity *p ){ debugParent(p); - MD2Model *t=d_new MD2Model( *file );delete file; + MD2Model *t=new MD2Model( *file );delete file; if( !t->getValid() ){ delete t;return 0; } return insertEntity( t,p ); } @@ -1202,7 +1202,7 @@ int bbMD2Animating( MD2Model *m ){ Entity * bbLoadBSP( BBStr *file,float gam,Entity *p ){ debugParent(p); CachedTexture::setPath( filenamepath( *file ) ); - Q3BSPModel *t=d_new Q3BSPModel( *file,gam );delete file; + Q3BSPModel *t=new Q3BSPModel( *file,gam );delete file; CachedTexture::setPath( "" ); if( !t->isValid() ){ delete t;return 0; } @@ -1246,7 +1246,7 @@ Entity * bbCreateTerrain( int n,Entity *p ){ int shift=0; while( (1<lock(); for( int y=0;yaddSeq( length ); }else{ - anim=d_new Animator( o,length ); + anim=new Animator( o,length ); o->setAnimator( anim ); } return anim->numSeqs()-1; @@ -1886,7 +1886,7 @@ void bbNameEntity( Entity *e,BBStr *t ){ BBStr * bbEntityName( Entity *e ){ debugEntity(e); - return d_new BBStr( e->getName() ); + return new BBStr( e->getName() ); } BBStr *bbEntityClass( Entity *e ){ @@ -1928,7 +1928,7 @@ int bbActiveTextures(){ void blitz3d_open(){ gx_scene=gx_graphics->createScene( 0 ); if( !gx_scene ) ThrowRuntimeException( "Unable to create 3D Scene" ); - world=d_new World(); + world=new World(); projected=Vector(); picked.collision=Collision(); picked.with=0;picked.coords=Vector(); diff --git a/RuntimeLib/bbfilesystem.cpp b/RuntimeLib/bbfilesystem.cpp index 0a6348e..d800eb6 100644 --- a/RuntimeLib/bbfilesystem.cpp +++ b/RuntimeLib/bbfilesystem.cpp @@ -43,9 +43,9 @@ static inline void debugDir( gxDir *d ){ static bbFile *open( BBStr *f,int n ){ string t=*f; - filebuf *buf=d_new filebuf(); + filebuf *buf=new filebuf(); if( buf->open( t.c_str(),n|ios_base::binary ) ){ - bbFile *f=d_new bbFile( buf ); + bbFile *f=new bbFile( buf ); file_set.insert( f ); return f; } @@ -90,11 +90,11 @@ void bbCloseDir( gxDir *d ){ BBStr *bbNextFile( gxDir *d ){ debugDir( d ); - return d_new BBStr( d->getNextFile() ); + return new BBStr( d->getNextFile() ); } BBStr *bbCurrentDir(){ - return d_new BBStr( gx_filesys->getCurrentDir() ); + return new BBStr( gx_filesys->getCurrentDir() ); } void bbChangeDir( BBStr *d ){ diff --git a/RuntimeLib/bbgraphics.cpp b/RuntimeLib/bbgraphics.cpp index 4ac13c5..9bb0210 100644 --- a/RuntimeLib/bbgraphics.cpp +++ b/RuntimeLib/bbgraphics.cpp @@ -199,7 +199,7 @@ static bool saveCanvas(gxCanvas *c, const string &f) { out.write((char*)&bf, sizeof(bf)); out.write((char*)&bi, sizeof(bi)); - unsigned char *temp = d_new unsigned char[tempsize]; + unsigned char *temp = new unsigned char[tempsize]; memset(temp, 0, tempsize); c->lock(); @@ -228,7 +228,7 @@ BBStr * bbGfxDriverName(int n) { debugDriver(n); string t; int caps; gx_runtime->graphicsDriverInfo(n - 1, &t, &caps); - return d_new BBStr(t); + return new BBStr(t); } void bbSetGfxDriver(int n) { @@ -696,7 +696,7 @@ bbImage *bbLoadImage(BBStr *s) { if (auto_midhandle) c->setHandle(c->getWidth() / 2, c->getHeight() / 2); vector frames; frames.push_back(c); - bbImage *i = d_new bbImage(frames); + bbImage *i = new bbImage(frames); image_set.insert(i); return i; } @@ -736,7 +736,7 @@ bbImage *bbLoadAnimImage(BBStr *s, int w, int h, int first, int cnt) { src_x += w; if (src_x + w > pic->getWidth()) { src_x = 0; src_y += h; } } gx_graphics->freeCanvas(pic); - bbImage *i = d_new bbImage(frames); + bbImage *i = new bbImage(frames); image_set.insert(i); return i; } @@ -762,7 +762,7 @@ bbImage *bbCopyImage(bbImage *i) { c->setMask(t->getMask()); frames.push_back(c); } - bbImage *t = d_new bbImage(frames); + bbImage *t = new bbImage(frames); image_set.insert(t); return t; } @@ -779,7 +779,7 @@ bbImage *bbCreateImage(int w, int h, int n) { if (auto_midhandle) c->setHandle(c->getWidth() / 2, c->getHeight() / 2); frames.push_back(c); } - bbImage *i = d_new bbImage(frames); + bbImage *i = new bbImage(frames); image_set.insert(i); return i; } @@ -1067,7 +1067,7 @@ BBStr *bbInput(BBStr *prompt) { p_canvas = gx_graphics->createCanvas(c->getWidth(), curr_font->getHeight() * 2, 0); if (!p_canvas) { endPrinting(c); - return d_new BBStr(); + return new BBStr(); } } //draw prompt @@ -1177,7 +1177,7 @@ BBStr *bbInput(BBStr *prompt) { curs_x = 0; curs_y += curr_font->getHeight(); endPrinting(c); - return d_new BBStr(str); + return new BBStr(str); } void bbLocate(int x, int y) { @@ -1360,9 +1360,9 @@ void graphics_link(void(*rtSym)(const char *sym, void *pc)) { rtSym("ShowPointer", bbShowPointer); rtSym("HidePointer", bbHidePointer); -} - -// NVidia Optimus +} + +// NVidia Optimus extern "C" { _declspec(dllexport) DWORD NvOptimusEnablement = 0x00000001; } \ No newline at end of file diff --git a/RuntimeLib/bbruntime.cpp b/RuntimeLib/bbruntime.cpp index f5b440d..b7df9bc 100644 --- a/RuntimeLib/bbruntime.cpp +++ b/RuntimeLib/bbruntime.cpp @@ -40,17 +40,17 @@ int bbMilliSecs() { } BBStr * bbCommandLine() { - return d_new BBStr(gx_runtime->commandLine()); + return new BBStr(gx_runtime->commandLine()); } BBStr * bbSystemProperty(BBStr *p) { string t = gx_runtime->systemProperty(*p); - delete p; return d_new BBStr(t); + delete p; return new BBStr(t); } BBStr * bbGetEnv(BBStr *env_var) { char *p = getenv(env_var->c_str()); - BBStr *val = d_new BBStr(p ? p : ""); + BBStr *val = new BBStr(p ? p : ""); delete env_var; return val; } diff --git a/RuntimeLib/bbsockets.cpp b/RuntimeLib/bbsockets.cpp index 321ce76..fe6e9b3 100644 --- a/RuntimeLib/bbsockets.cpp +++ b/RuntimeLib/bbsockets.cpp @@ -262,7 +262,7 @@ TCPStream *TCPServer::accept() { if (n != 1) { e = -1; return 0; } SOCKET t = ::accept(sock, 0, 0); if (t == INVALID_SOCKET) { e = -1; return 0; } - TCPStream *s = d_new TCPStream(t, this); + TCPStream *s = new TCPStream(t, this); accepted_set.insert(s); return s; } @@ -315,7 +315,7 @@ UDPStream *bbCreateUDPStream(int port) { if (s != INVALID_SOCKET) { sockaddr_in addr = { AF_INET,htons(port) }; if (!::bind(s, (sockaddr*)&addr, sizeof(addr))) { - UDPStream *p = d_new UDPStream(s); + UDPStream *p = new UDPStream(s); udp_set.insert(p); return p; } @@ -365,7 +365,7 @@ void bbUDPTimeouts(int rt) { } BBStr *bbDottedIP(int ip) { - return d_new BBStr( + return new BBStr( itoa((ip >> 24) & 255) + "." + itoa((ip >> 16) & 255) + "." + itoa((ip >> 8) & 255) + "." + itoa(ip & 255)); } @@ -401,7 +401,7 @@ TCPStream *bbOpenTCPStream(BBStr *server, int port, int local_port) { sockaddr_in addr = { AF_INET,htons(port) }; addr.sin_addr.S_un.S_addr = ip; if (!::connect(s, (sockaddr*)&addr, sizeof(addr))) { - TCPStream *p = d_new TCPStream(s, 0); + TCPStream *p = new TCPStream(s, 0); tcp_set.insert(p); return p; } @@ -422,7 +422,7 @@ TCPServer * bbCreateTCPServer(int port) { sockaddr_in addr = { AF_INET,htons(port) }; if (!::bind(s, (sockaddr*)&addr, sizeof(addr))) { if (!::listen(s, SOMAXCONN)) { - TCPServer *p = d_new TCPServer(s); + TCPServer *p = new TCPServer(s); server_set.insert(p); return p; } diff --git a/RuntimeLib/bbstream.cpp b/RuntimeLib/bbstream.cpp index 612b93b..d35e66d 100644 --- a/RuntimeLib/bbstream.cpp +++ b/RuntimeLib/bbstream.cpp @@ -58,9 +58,9 @@ float bbReadFloat( bbStream *s ){ BBStr *bbReadString( bbStream *s ){ if( debug ) debugStream( s ); int len; - BBStr *str=d_new BBStr(); + BBStr *str=new BBStr(); if( s->read( (char*)&len,4 ) ){ - char *buff=d_new char[len]; + char *buff=new char[len]; if( s->read( buff,len ) ){ *str=string( buff,len ); } @@ -72,7 +72,7 @@ BBStr *bbReadString( bbStream *s ){ BBStr *bbReadLine( bbStream *s ){ if( debug ) debugStream( s ); unsigned char c; - BBStr *str=d_new BBStr(); + BBStr *str=new BBStr(); for(;;){ if( s->read( (char*)&c,1 )!=1 ) break; if( c=='\n' ) break; @@ -121,7 +121,7 @@ void bbCopyStream( bbStream *s,bbStream *d,int buff_size ){ debugStream( s );debugStream( d ); if( buff_size<1 || buff_size>1024*1024 ) ThrowRuntimeException( "Illegal buffer size" ); } - char *buff=d_new char[buff_size]; + char *buff=new char[buff_size]; while( s->eof()==0 && d->eof()==0 ){ int n=s->read( buff,buff_size ); d->write( buff,n ); diff --git a/RuntimeLib/bbstring.cpp b/RuntimeLib/bbstring.cpp index 1fd994c..67b8d3d 100644 --- a/RuntimeLib/bbstring.cpp +++ b/RuntimeLib/bbstring.cpp @@ -7,7 +7,7 @@ #define CHKOFF(x) if( (x)<=0 ) ThrowRuntimeException( "parameter must be greater than 0" ); BBStr *bbString( BBStr *s,int n ){ - BBStr *t=d_new BBStr(); + BBStr *t=new BBStr(); while( n-->0 ) *t+=*s; delete s;return t; } @@ -83,7 +83,7 @@ BBStr *bbRSet( BBStr *s,int n ){ } BBStr *bbChr( int n ){ - BBStr *t=d_new BBStr(); + BBStr *t=new BBStr(); *t+=(char)n;return t; } @@ -94,7 +94,7 @@ BBStr *bbHex( int n ){ buff[k]=t>'9' ? t+='A'-'9'-1 : t; } buff[8]=0; - return d_new BBStr( buff ); + return new BBStr( buff ); } BBStr *bbBin( int n ){ @@ -103,7 +103,7 @@ BBStr *bbBin( int n ){ buff[k]=n&1 ? '1' : '0'; } buff[32]=0; - return d_new BBStr( buff ); + return new BBStr( buff ); } int bbAsc( BBStr *s ){ @@ -121,7 +121,7 @@ BBStr *bbCurrentDate(){ time( &t ); char buff[256]; strftime( buff,256,"%d %b %Y",localtime( &t ) ); - return d_new BBStr( buff ); + return new BBStr( buff ); } BBStr *bbCurrentTime(){ @@ -129,7 +129,7 @@ BBStr *bbCurrentTime(){ time( &t ); char buff[256]; strftime( buff,256,"%H:%M:%S",localtime( &t ) ); - return d_new BBStr( buff ); + return new BBStr( buff ); } bool string_create(){ diff --git a/RuntimeLib/multiplay.cpp b/RuntimeLib/multiplay.cpp index 8d56364..dfdd105 100644 --- a/RuntimeLib/multiplay.cpp +++ b/RuntimeLib/multiplay.cpp @@ -76,7 +76,7 @@ // //static BOOL FAR PASCAL enumPlayer( DPID id,DWORD type,LPCDPNAME name,DWORD flags,LPVOID context ){ // Player *p=findPlayer( id );if( p ) return TRUE; -// p=d_new Player( id,string( name->lpszShortNameA ),true ); +// p=new Player( id,string( name->lpszShortNameA ),true ); // return TRUE; //} // @@ -103,8 +103,8 @@ //bool multiplay_create(){ // // recv_buff_sz=send_buff_sz=1024; -// recv_buff=d_new char[recv_buff_sz]; -// send_buff=d_new char[send_buff_sz]; +// recv_buff=new char[recv_buff_sz]; +// send_buff=new char[send_buff_sz]; // // multiplay_setup_create(); // @@ -176,7 +176,7 @@ // // if( dirPlay->CreatePlayer( &id,&name,0,0,0,0 )<0 ) return 0; // -// Player *p=d_new Player( id,t,false ); +// Player *p=new Player( id,t,false ); // // if( players.size()==1 ){ // if( dirPlay->EnumPlayers( 0,enumPlayer,0,0 )<0 ){ @@ -198,9 +198,9 @@ //} // //BBStr *bbNetPlayerName( DPID player ){ -// if( !player ) return d_new BBStr( "" ); +// if( !player ) return new BBStr( "" ); // Player *p=findPlayer( player ); -// return d_new BBStr( p ? p->name : "" ); +// return new BBStr( p ? p->name : "" ); //} // //int bbNetPlayerLocal( DPID player ){ @@ -230,7 +230,7 @@ // // if( n==DPERR_BUFFERTOOSMALL ){ // sz=recv_buff_sz=sz/2+sz; -// delete[] recv_buff;recv_buff=d_new char[recv_buff_sz]; +// delete[] recv_buff;recv_buff=new char[recv_buff_sz]; // n=dirPlay->Receive( &from,&to,0,recv_buff,&sz ); // } // @@ -241,7 +241,7 @@ // case DPSYS_CREATEPLAYERORGROUP: // if( DPMSG_CREATEPLAYERORGROUP *msg=(DPMSG_CREATEPLAYERORGROUP*)recv_buff ){ // if( findPlayer( from=msg->dpId ) ) continue; -// d_new Player( from,string( msg->dpnName.lpszShortNameA ),true ); +// new Player( from,string( msg->dpnName.lpszShortNameA ),true ); // continue; // } // break; @@ -277,7 +277,7 @@ //} // //BBStr *bbNetMsgData(){ -// return d_new BBStr( msg_data ); +// return new BBStr( msg_data ); //} // //DPID bbNetMsgFrom(){ @@ -294,7 +294,7 @@ // int sz=msg->size()+sizeof(bbMsg); // if( sz>send_buff_sz ){ // send_buff_sz=sz/2+sz; -// delete send_buff;send_buff=d_new char[send_buff_sz]; +// delete send_buff;send_buff=new char[send_buff_sz]; // } // bbMsg *m=(bbMsg*)send_buff; // m->type=type;m->from=from;m->to=to; diff --git a/RuntimeLib/multiplay_setup.cpp b/RuntimeLib/multiplay_setup.cpp index d51f31d..619bdf3 100644 --- a/RuntimeLib/multiplay_setup.cpp +++ b/RuntimeLib/multiplay_setup.cpp @@ -12,7 +12,7 @@ // void *data; // // Connection( const GUID &g,const string &n,void *d,int sz ):guid(g),name(n){ -// data=d_new char[sz];memcpy( data,d,sz ); +// data=new char[sz];memcpy( data,d,sz ); // } // // ~Connection(){ @@ -67,7 +67,7 @@ // int n=dp->InitializeConnection( conn,0 ); // dp->Release();if( n<0 ) return TRUE; // -// Connection *c=d_new Connection( *guid,string( strdup( name->lpszShortNameA ) ),conn,size ); +// Connection *c=new Connection( *guid,string( strdup( name->lpszShortNameA ) ),conn,size ); // connections.push_back( c ); // // return TRUE; @@ -76,7 +76,7 @@ //static BOOL FAR PASCAL enumSession( LPCDPSESSIONDESC2 desc,LPDWORD timeout,DWORD flags,LPVOID lpContext ){ // // if( !desc ) return FALSE; -// sessions.push_back( d_new Session( desc ) ); +// sessions.push_back( new Session( desc ) ); // return TRUE; //} // @@ -196,7 +196,7 @@ // case WM_INITDIALOG: // SetForegroundWindow( hwnd ); // clearConnections(); -// connections.push_back( d_new Connection( GUID_NULL,"","",0 ) ); +// connections.push_back( new Connection( GUID_NULL,"","",0 ) ); // if( openDirPlay( hwnd ) ){ // if( dirPlay->EnumConnections( 0,enumConnection,0,0 )<0 ){ // MessageBox( hwnd,"Failed to enumerate connections","DirectPlay Error",MB_SETFOREGROUND|MB_TOPMOST|MB_ICONWARNING|MB_OK ); diff --git a/blitz/libs.cpp b/blitz/libs.cpp index 63becd3..ea9b98a 100644 --- a/blitz/libs.cpp +++ b/blitz/libs.cpp @@ -88,7 +88,7 @@ static const char *linkRuntime() { for (k = 1; k < s.size(); ++k, end = k) { if (!isalnum(s[k]) && s[k] != '_') break; } - DeclSeq *params = d_new DeclSeq(); + DeclSeq *params = new DeclSeq(); string n = s.substr(start, end - start); while (k < s.size()) { Type *t = typeof(s[k++]); @@ -101,23 +101,23 @@ static const char *linkRuntime() { if (s[k] == '\"') { for (++k; s[k] != '\"'; ++k) {} string t = s.substr(from + 1, k - from - 1); - defType = d_new ConstType(t); ++k; + defType = new ConstType(t); ++k; } else { if (s[k] == '-') ++k; for (; isdigit(s[k]); ++k) {} if (t == Type::int_type) { int n = atoi(s.substr(from, k - from)); - defType = d_new ConstType(n); + defType = new ConstType(n); } else { float n = atof(s.substr(from, k - from)); - defType = d_new ConstType(n); + defType = new ConstType(n); } } } Decl *d = params->insertDecl(str, t, DECL_PARAM, defType); } - FuncType *f = d_new FuncType(t, params, false, cfunc); + FuncType *f = new FuncType(t, params, false, cfunc); n = tolower(n); runtimeEnviron->funcDecls->insertDecl(n, f, DECL_FUNC); runtimeModule->addSymbol(("_f" + n).c_str(), pc); @@ -169,7 +169,7 @@ static const char *loadUserLib(const string &userlib) { if (ty) next(in); else ty = Type::void_type; - DeclSeq *params = d_new DeclSeq(); + DeclSeq *params = new DeclSeq(); if (curr != '(') return "expecting '(' after function identifier"; next(in); @@ -200,7 +200,7 @@ static const char *loadUserLib(const string &userlib) { keyWords.push_back(id); - FuncType *fn = d_new FuncType(ty, params, true, true); + FuncType *fn = new FuncType(ty, params, true, true); runtimeEnviron->funcDecls->insertDecl(lower_id, fn, DECL_FUNC); @@ -285,7 +285,7 @@ const char *openLibs() { runtimeLib->startup(GetModuleHandle(0)); runtimeModule = linkerLib->createModule(); - runtimeEnviron = d_new Environ("", Type::int_type, 0, 0); + runtimeEnviron = new Environ("", Type::int_type, 0, 0); keyWords.clear(); userFuncs.clear(); diff --git a/blitz3d/animation.cpp b/blitz3d/animation.cpp index 46a2229..4c761db 100644 --- a/blitz3d/animation.cpp +++ b/blitz3d/animation.cpp @@ -197,7 +197,7 @@ struct Animation::Rep{ }; Animation::Animation(): -rep( d_new Rep() ){ +rep( new Rep() ){ } Animation::Animation( const Animation &t ): @@ -206,7 +206,7 @@ rep( t.rep ){ } Animation::Animation( const Animation &t,int first,int last ): -rep( d_new Rep() ){ +rep( new Rep() ){ Rep::KeyList::const_iterator it; for( it=t.rep->pos_anim.begin();it!=t.rep->pos_anim.end();++it ){ const Rep::Key &key=*it; @@ -239,7 +239,7 @@ Animation &Animation::operator=( const Animation &t ){ Animation::Rep *Animation::write(){ if( rep->ref_cnt>1 ){ --rep->ref_cnt; - rep=d_new Rep( *rep ); + rep=new Rep( *rep ); } return rep; } diff --git a/blitz3d/cachedtexture.cpp b/blitz3d/cachedtexture.cpp index ef355eb..9c8cd98 100644 --- a/blitz3d/cachedtexture.cpp +++ b/blitz3d/cachedtexture.cpp @@ -105,7 +105,7 @@ CachedTexture::Rep *CachedTexture::findRep( const string &f,int flags,int w,int } CachedTexture::CachedTexture( int w,int h,int flags,int cnt ): -rep(d_new Rep(w,h,flags,cnt)){ +rep(new Rep(w,h,flags,cnt)){ } CachedTexture::CachedTexture( const string &f_,int flags,int w,int h,int first,int cnt ){ @@ -114,7 +114,7 @@ CachedTexture::CachedTexture( const string &f_,int flags,int w,int h,int first,i if( path.size() ){ string t=path+tolower( filenamefile( f ) ); if( rep=findRep( t,flags,w,h,first,cnt ) ) return; - rep=d_new Rep( t,flags,w,h,first,cnt ); + rep=new Rep( t,flags,w,h,first,cnt ); if( rep->frames.size() ){ rep_set.insert( rep ); return; @@ -123,7 +123,7 @@ CachedTexture::CachedTexture( const string &f_,int flags,int w,int h,int first,i } string t=tolower( fullfilename( f ) ); if( rep=findRep( t,flags,w,h,first,cnt ) ) return; - rep=d_new Rep( t,flags,w,h,first,cnt ); + rep=new Rep( t,flags,w,h,first,cnt ); rep_set.insert( rep ); } diff --git a/blitz3d/geom.h b/blitz3d/geom.h index 24971be..2421b07 100644 --- a/blitz3d/geom.h +++ b/blitz3d/geom.h @@ -14,8 +14,6 @@ static float PI = 3.14159265359f; //180 degrees static float TWOPI = PI*2.0f; //360 degrees static float HALFPI = PI*.5f; //90 degrees static float QUARTERPI = PI*.25f; //45 degrees -//static float FLT_EPSILON=.000001f; //small value -//static float INFINITY=10000000.0f; //big value class Vector { public: diff --git a/blitz3d/listener.h b/blitz3d/listener.h index f6470de..ec3b698 100644 --- a/blitz3d/listener.h +++ b/blitz3d/listener.h @@ -11,7 +11,7 @@ public: ~Listener(); //Entity interface - Entity *clone(){ return d_new Listener( *this ); } + Entity *clone(){ return new Listener( *this ); } Listener *getListener(){ return this; } //Listener interface diff --git a/blitz3d/loader_3ds.cpp b/blitz3d/loader_3ds.cpp index b94acf6..ea86b6f 100644 --- a/blitz3d/loader_3ds.cpp +++ b/blitz3d/loader_3ds.cpp @@ -244,7 +244,7 @@ static void parseObject( MeshModel *root ){ while( int id=nextChunk() ){ switch( id ){ case CHUNK_TRIMESH: - mesh=d_new MeshModel(); + mesh=new MeshModel(); mesh->setName( name ); mesh->setParent( root ); name_map[name]=mesh; @@ -419,7 +419,7 @@ static void parseMeshInfo( MeshModel *root,float curr_time ){ } MeshModel *mesh=0; if( name=="$$$DUMMY" ){ - mesh=d_new MeshModel(); + mesh=new MeshModel(); mesh->setName( inst ); mesh->setParent( p ); }else{ @@ -465,7 +465,7 @@ static void parseKeyFramer( MeshModel *root ){ } if( !collapse ){ - root->setAnimator( d_new Animator( root,anim_len ) ); + root->setAnimator( new Animator( root,anim_len ) ); } leaveChunk(); @@ -479,7 +479,7 @@ static MeshModel *parseFile(){ chunk_end=(int)in.pubseekoff( 0,ios_base::cur )+len-6; enterChunk(); - MeshModel *root=d_new MeshModel(); + MeshModel *root=new MeshModel(); while( int id=nextChunk() ){ switch( id ){ case CHUNK_SCENE: diff --git a/blitz3d/loader_b3d.cpp b/blitz3d/loader_b3d.cpp index d4a8a82..77cec85 100644 --- a/blitz3d/loader_b3d.cpp +++ b/blitz3d/loader_b3d.cpp @@ -210,7 +210,7 @@ static Object *readBone(){ t.m.k.z=.1f; bone->transform( t ); #else - Pivot *bone=d_new Pivot(); + Pivot *bone=new Pivot(); #endif bones.push_back( bone ); @@ -264,7 +264,7 @@ static Object *readObject( Object *parent ){ switch( readChunk() ){ case 'MESH': MeshLoader::beginMesh(); - obj=mesh=d_new MeshModel(); + obj=mesh=new MeshModel(); mesh_brush=readInt(); mesh_flags=readMesh(); break; @@ -280,14 +280,14 @@ static Object *readObject( Object *parent ){ readFloat(); break; case 'NODE': - if( !obj ) obj=d_new MeshModel(); + if( !obj ) obj=new MeshModel(); readObject( obj ); break; } exitChunk(); } - if( !obj ) obj=d_new MeshModel(); + if( !obj ) obj=new MeshModel(); obj->setName( name ); obj->setLocalPosition( Vector( pos[0],pos[1],pos[2] ) ); @@ -303,11 +303,11 @@ static Object *readObject( Object *parent ){ if( mesh && bones.size() ){ bones.insert( bones.begin(),mesh ); - mesh->setAnimator( d_new Animator( bones,anim_len ) ); + mesh->setAnimator( new Animator( bones,anim_len ) ); mesh->createBones(); bones.clear(); }else if( anim_len ){ - obj->setAnimator( d_new Animator( obj,anim_len ) ); + obj->setAnimator( new Animator( obj,anim_len ) ); } if( parent ) obj->setParent( parent ); diff --git a/blitz3d/loader_x.cpp b/blitz3d/loader_x.cpp index 18e48be..3ccce2e 100644 --- a/blitz3d/loader_x.cpp +++ b/blitz3d/loader_x.cpp @@ -290,7 +290,7 @@ static void parseMesh( IDirectXFileData *fileData,MeshModel *mesh ){ static MeshModel *parseFrame( IDirectXFileData *fileData ){ - MeshModel *e=d_new MeshModel(); + MeshModel *e=new MeshModel(); const GUID *guid; IDirectXFileObject *childObj; @@ -346,7 +346,7 @@ static MeshModel *parseFile( const string &file ){ } anim_len=0; - MeshModel *e=d_new MeshModel(); + MeshModel *e=new MeshModel(); for( ;enumObj->GetNextDataObject( &fileData )>=0;fileData->Release() ){ if( fileData->GetType( &guid )<0 ) continue; @@ -361,7 +361,7 @@ static MeshModel *parseFile( const string &file ){ } if( !collapse ){ - e->setAnimator( d_new Animator( e,anim_len ) ); + e->setAnimator( new Animator( e,anim_len ) ); } enumObj->Release(); diff --git a/blitz3d/md2model.cpp b/blitz3d/md2model.cpp index 63eda97..72bc148 100644 --- a/blitz3d/md2model.cpp +++ b/blitz3d/md2model.cpp @@ -12,7 +12,7 @@ struct MD2Model::Rep : public MD2Rep{ }; MD2Model::MD2Model( const string &f ): -rep( d_new Rep( f ) ), +rep( new Rep( f ) ), anim_mode(0),anim_time(0), render_a(0),render_b(0),render_t(0),trans_verts(0){ } @@ -40,7 +40,7 @@ void MD2Model::startMD2Anim( int first,int last,int mode,float speed,float trans else if( last>=rep->numFrames() ) last=rep->numFrames()-1; if( trans>0 ){ - if( !trans_verts ) trans_verts=d_new MD2Rep::Vert[rep->numVertices()]; + if( !trans_verts ) trans_verts=new MD2Rep::Vert[rep->numVertices()]; if( anim_mode & 0x8000 ) rep->render( trans_verts,anim_time,trans_time ); else rep->render( trans_verts,render_a,render_b,render_t ); diff --git a/blitz3d/md2model.h b/blitz3d/md2model.h index 8c2c01d..7f3b158 100644 --- a/blitz3d/md2model.h +++ b/blitz3d/md2model.h @@ -12,7 +12,7 @@ public: ~MD2Model(); //Entity interface - Entity *clone(){ return d_new MD2Model( *this ); } + Entity *clone(){ return new MD2Model( *this ); } MD2Model *getMD2Model(){ return this; } //Object interface diff --git a/blitz3d/meshcollider.cpp b/blitz3d/meshcollider.cpp index 12e27de..df39c8e 100644 --- a/blitz3d/meshcollider.cpp +++ b/blitz3d/meshcollider.cpp @@ -111,7 +111,7 @@ Box MeshCollider::nodeBox( const vector &tris ){ MeshCollider::Node *MeshCollider::createLeaf( const vector &tris ){ - Node *c=d_new Node; + Node *c=new Node; c->box=nodeBox( tris ); c->triangles=tris; leaves.push_back( c ); @@ -122,7 +122,7 @@ MeshCollider::Node *MeshCollider::createNode( const vector &tris ){ if( tris.size()<=MAX_COLL_TRIS ) return createLeaf( tris ); - Node *c=d_new Node; + Node *c=new Node; c->box=nodeBox( tris ); //find longest axis diff --git a/blitz3d/meshloader.cpp b/blitz3d/meshloader.cpp index bcce95f..9c90b31 100644 --- a/blitz3d/meshloader.cpp +++ b/blitz3d/meshloader.cpp @@ -31,7 +31,7 @@ static vector mesh_stack; void MeshLoader::beginMesh(){ mesh_stack.push_back( ml_mesh ); - ml_mesh=d_new MLMesh(); + ml_mesh=new MLMesh(); } int MeshLoader::numVertices(){ @@ -71,7 +71,7 @@ void MeshLoader::addTriangle( int v0,int v1,int v2,const Brush &b ){ map::const_iterator it=ml_mesh->brush_map.find( b ); if( it!=ml_mesh->brush_map.end() ) surf=it->second; else{ - surf=d_new Surf; + surf=new Surf; ml_mesh->brush_map.insert( make_pair( b,surf ) ); } diff --git a/blitz3d/meshmodel.cpp b/blitz3d/meshmodel.cpp index effee8f..27fec29 100644 --- a/blitz3d/meshmodel.cpp +++ b/blitz3d/meshmodel.cpp @@ -26,7 +26,7 @@ struct MeshModel::Rep : public Surface::Monitor{ } Surface *createSurface( const Brush &b ){ - Surface *t=d_new Surface( this ); + Surface *t=new Surface( this ); surfaces.push_back( t ); t->setBrush( b ); return t; @@ -153,7 +153,7 @@ struct MeshModel::Rep : public Surface::Monitor{ verts.push_back( q ); } } - collider=d_new MeshCollider( verts,tris ); + collider=new MeshCollider( verts,tris ); coll_valid=geom_changes; } return collider; @@ -161,7 +161,7 @@ struct MeshModel::Rep : public Surface::Monitor{ }; MeshModel::MeshModel(): -rep( d_new Rep() ),brush_changes(0){ +rep( new Rep() ),brush_changes(0){ } MeshModel::MeshModel( const MeshModel &t ):Model( t ), diff --git a/blitz3d/meshmodel.h b/blitz3d/meshmodel.h index e5aa05f..b064d3b 100644 --- a/blitz3d/meshmodel.h +++ b/blitz3d/meshmodel.h @@ -17,7 +17,7 @@ public: //Entity interface virtual MeshModel *getMeshModel(){ return this; } - virtual Entity *clone(){ return d_new MeshModel( *this ); } + virtual Entity *clone(){ return new MeshModel( *this ); } //Object interface virtual bool collide( const Line &line,float radius,Collision *curr_coll,const Transform &t ); diff --git a/blitz3d/meshutil.cpp b/blitz3d/meshutil.cpp index 541c166..7a1686f 100644 --- a/blitz3d/meshutil.cpp +++ b/blitz3d/meshutil.cpp @@ -15,7 +15,7 @@ MeshModel *MeshUtil::createCube( const Brush &b ){ }; static Box box( Vector(-1,-1,-1),Vector(1,1,1) ); - MeshModel *m=d_new MeshModel(); + MeshModel *m=new MeshModel(); Surface *s=m->createSurface( b ); Surface::Vertex v; Surface::Triangle t; @@ -38,7 +38,7 @@ MeshModel *MeshUtil::createSphere( const Brush &b,int segs ){ int h_segs=segs*2,v_segs=segs; - MeshModel *m=d_new MeshModel(); + MeshModel *m=new MeshModel(); Surface *s=m->createSurface( b ); Surface::Vertex v; @@ -96,7 +96,7 @@ MeshModel *MeshUtil::createSphere( const Brush &b,int segs ){ MeshModel *MeshUtil::createCylinder( const Brush &b,int segs,bool solid ){ - MeshModel *m=d_new MeshModel(); + MeshModel *m=new MeshModel(); Surface::Vertex v; Surface::Triangle t; @@ -154,7 +154,7 @@ MeshModel *MeshUtil::createCylinder( const Brush &b,int segs,bool solid ){ } MeshModel *MeshUtil::createCone( const Brush &b,int segs,bool solid ){ - MeshModel *m=d_new MeshModel(); + MeshModel *m=new MeshModel(); Surface::Vertex v; Surface::Triangle t; diff --git a/blitz3d/mirror.h b/blitz3d/mirror.h index 669a0c2..ce876a2 100644 --- a/blitz3d/mirror.h +++ b/blitz3d/mirror.h @@ -11,7 +11,7 @@ public: ~Mirror(); //Entity interface - Entity *clone(){ return d_new Mirror( *this ); } + Entity *clone(){ return new Mirror( *this ); } Mirror *getMirror(){ return this; } }; diff --git a/blitz3d/object.cpp b/blitz3d/object.cpp index d4869da..d7d847f 100644 --- a/blitz3d/object.cpp +++ b/blitz3d/object.cpp @@ -31,7 +31,7 @@ Object *Object::copy(){ Object *cpy=e->getObject()->copy(); cpy->setParent( last_copy ); } - if( animator ) last_copy->setAnimator( d_new Animator( animator ) ); + if( animator ) last_copy->setAnimator( new Animator( animator ) ); return last_copy; } diff --git a/blitz3d/object.h b/blitz3d/object.h index fa03f7f..a6d58f6 100644 --- a/blitz3d/object.h +++ b/blitz3d/object.h @@ -26,7 +26,7 @@ public: //Entity interface Object *getObject(){ return this; } - Entity *clone(){ return d_new Object( *this ); } + Entity *clone(){ return new Object( *this ); } //deep object copy! Object *copy(); diff --git a/blitz3d/pivot.h b/blitz3d/pivot.h index 70cc4d7..e4f8fa5 100644 --- a/blitz3d/pivot.h +++ b/blitz3d/pivot.h @@ -10,7 +10,7 @@ public: Pivot( const Object &t ); //Entity interface - Entity *clone(){ return d_new Pivot( *this ); } + Entity *clone(){ return new Pivot( *this ); } }; #endif \ No newline at end of file diff --git a/blitz3d/planemodel.cpp b/blitz3d/planemodel.cpp index 83e1750..78f8b06 100644 --- a/blitz3d/planemodel.cpp +++ b/blitz3d/planemodel.cpp @@ -100,7 +100,7 @@ struct PlaneModel::Rep{ }; PlaneModel::PlaneModel( int sub_divs ): -rep( d_new Rep(sub_divs) ){ +rep( new Rep(sub_divs) ){ } PlaneModel::PlaneModel( const PlaneModel &t ): diff --git a/blitz3d/planemodel.h b/blitz3d/planemodel.h index 0943802..73f6485 100644 --- a/blitz3d/planemodel.h +++ b/blitz3d/planemodel.h @@ -10,7 +10,7 @@ public: PlaneModel( int sub_divs ); PlaneModel( const PlaneModel &t ); ~PlaneModel(); - Entity *clone(){ return d_new PlaneModel( *this ); } + Entity *clone(){ return new PlaneModel( *this ); } //model interface bool render( const RenderContext &rc ); diff --git a/blitz3d/q3bspmodel.cpp b/blitz3d/q3bspmodel.cpp index 21b1e88..e36bc84 100644 --- a/blitz3d/q3bspmodel.cpp +++ b/blitz3d/q3bspmodel.cpp @@ -12,7 +12,7 @@ struct Q3BSPModel::Rep : public Q3BSPRep{ }; Q3BSPModel::Q3BSPModel( const string &f,float gam ): -rep( d_new Rep( f,gam ) ){ +rep( new Rep( f,gam ) ){ } Q3BSPModel::Q3BSPModel( const Q3BSPModel &t ):Model(t), diff --git a/blitz3d/q3bspmodel.h b/blitz3d/q3bspmodel.h index a4973a9..7b85d96 100644 --- a/blitz3d/q3bspmodel.h +++ b/blitz3d/q3bspmodel.h @@ -11,7 +11,7 @@ public: ~Q3BSPModel(); //Entity interface - Entity *clone(){ return d_new Q3BSPModel( *this ); } + Entity *clone(){ return new Q3BSPModel( *this ); } //Object interface virtual bool collide( const Line &line,float radius,Collision *curr_coll,const Transform &t ); diff --git a/blitz3d/q3bsprep.cpp b/blitz3d/q3bsprep.cpp index 7a96f78..f1ba436 100644 --- a/blitz3d/q3bsprep.cpp +++ b/blitz3d/q3bsprep.cpp @@ -176,7 +176,7 @@ static void debuglog(const string &t) {} static Surf *findSurf(q3_face *f) { FaceMap::const_iterator it = face_map.find(f); if (it != face_map.end()) return it->second; - Surf *s = d_new Surf; + Surf *s = new Surf; s->texture = f->texture; s->lm_index = f->lm_index; face_map.insert(make_pair(f, s)); @@ -263,7 +263,7 @@ void Q3BSPRep::createCollider() { std::swap(coll_tris[k].verts[1], coll_tris[k].verts[2]); } #endif - collider = d_new MeshCollider(coll_verts, coll_tris); + collider = new MeshCollider(coll_verts, coll_tris); p_coll_verts.clear(); coll_verts.clear(); coll_tris.clear(); @@ -298,7 +298,7 @@ void Q3BSPRep::createSurfs() { } mesh->unlock(); - Q3BSPSurf *surf = d_new Q3BSPSurf; + Q3BSPSurf *surf = new Q3BSPSurf; surf->texture = s->texture; surf->lm_index = s->lm_index; surf->mesh = mesh; @@ -468,7 +468,7 @@ static void meshFace(Q3BSPFace *face, q3_face *q3face, bool draw, bool solid) { } static Q3BSPBrush *createBrush(int n) { - Q3BSPBrush *brush = d_new Q3BSPBrush; + Q3BSPBrush *brush = new Q3BSPBrush; q3_brush *q3brush = (q3_brush*)header.dir[8].lump + n; q3_brushside *q3brushside = (q3_brushside*)header.dir[9].lump + q3brush->brushside; Plane p; @@ -484,7 +484,7 @@ static Q3BSPBrush *createBrush(int n) { Q3BSPLeaf *Q3BSPRep::createLeaf(int n) { q3_leaf *q3leaf = (q3_leaf*)header.dir[4].lump + n; - Q3BSPLeaf *leaf = d_new Q3BSPLeaf; + Q3BSPLeaf *leaf = new Q3BSPLeaf; leaf->cluster = q3leaf->cluster; @@ -523,7 +523,7 @@ Q3BSPLeaf *Q3BSPRep::createLeaf(int n) { Q3BSPFace *face = 0; if (draw) { Surf *surf = findSurf(q3face); - face = d_new Q3BSPFace; + face = new Q3BSPFace; face->t_surf = surf; face->vert = surf->verts.size(); face->tri = surf->tris.size(); @@ -588,7 +588,7 @@ Q3BSPRep::Q3BSPRep(const string &f, float gam) :root_node(0), vis_sz(0), vis_dat for (k = 0; k < 17; ++k) { if (header.dir[k].offset && header.dir[k].length) { fseek(buf, header.dir[k].offset, SEEK_SET); - header.dir[k].lump = d_new char[header.dir[k].length]; + header.dir[k].lump = new char[header.dir[k].length]; fread(header.dir[k].lump, header.dir[k].length, 1, buf); } else { header.dir[k].lump = 0; diff --git a/blitz3d/sprite.h b/blitz3d/sprite.h index 31c8f1f..879ec9f 100644 --- a/blitz3d/sprite.h +++ b/blitz3d/sprite.h @@ -21,7 +21,7 @@ public: Sprite *getSprite(){ return this; } - Entity *clone(){ return d_new Sprite( *this ); } + Entity *clone(){ return new Sprite( *this ); } void capture(); bool beginRender( float tween ); diff --git a/blitz3d/terrain.cpp b/blitz3d/terrain.cpp index e355a48..a77f64c 100644 --- a/blitz3d/terrain.cpp +++ b/blitz3d/terrain.cpp @@ -4,7 +4,7 @@ #include "terrainrep.h" Terrain::Terrain( int size_shift ): -rep( d_new TerrainRep( size_shift ) ){ +rep( new TerrainRep( size_shift ) ){ } Terrain::~Terrain(){ diff --git a/blitz3d/terrainrep.cpp b/blitz3d/terrainrep.cpp index 6a48ded..8bfa108 100644 --- a/blitz3d/terrainrep.cpp +++ b/blitz3d/terrainrep.cpp @@ -139,8 +139,8 @@ TerrainRep::TerrainRep( int n ): cell_shift(n),cell_size(1<=max_verts ){ max_verts+=max_verts/2+32; Vert *t=verts; - verts=d_new Vert[max_verts]; + verts=new Vert[max_verts]; memcpy( verts,t,sizeof(Vert)*tv ); next_vert=verts+tv; } diff --git a/blitz3d/texture.cpp b/blitz3d/texture.cpp index be3f904..bd95242 100644 --- a/blitz3d/texture.cpp +++ b/blitz3d/texture.cpp @@ -79,19 +79,19 @@ Texture::Texture() :rep(0) { Texture::Texture(const string &f, int flags) { flags = filterFile(f, flags) | gxCanvas::CANVAS_TEXTURE; if (flags & gxCanvas::CANVAS_TEX_MASK) flags |= gxCanvas::CANVAS_TEX_RGB | gxCanvas::CANVAS_TEX_ALPHA; - rep = d_new Rep(f, flags, 0, 0, 0, 1); + rep = new Rep(f, flags, 0, 0, 0, 1); } Texture::Texture(const string &f, int flags, int w, int h, int first, int cnt) { flags = filterFile(f, flags) | gxCanvas::CANVAS_TEXTURE; if (flags & gxCanvas::CANVAS_TEX_MASK) flags |= gxCanvas::CANVAS_TEX_RGB | gxCanvas::CANVAS_TEX_ALPHA; - rep = d_new Rep(f, flags, w, h, first, cnt); + rep = new Rep(f, flags, w, h, first, cnt); } Texture::Texture(int w, int h, int flags, int cnt) { flags |= gxCanvas::CANVAS_TEXTURE; if (flags & gxCanvas::CANVAS_TEX_MASK) flags |= gxCanvas::CANVAS_TEX_RGB | gxCanvas::CANVAS_TEX_ALPHA; - rep = d_new Rep(w, h, flags, cnt); + rep = new Rep(w, h, flags, cnt); } Texture::Texture(const Texture &t) : diff --git a/compiler/codegen_x86/codegen_x86.cpp b/compiler/codegen_x86/codegen_x86.cpp index 47110f3..2eb1501 100644 --- a/compiler/codegen_x86/codegen_x86.cpp +++ b/compiler/codegen_x86/codegen_x86.cpp @@ -107,7 +107,7 @@ Tile *Codegen_x86::genCompare( TNode *t,string &func,bool negate ){ } } - return d_new Tile( q,ql ? munchReg( ql ) : 0,qr ? munchReg( qr ) : 0 ); + return new Tile( q,ql ? munchReg( ql ) : 0,qr ? munchReg( qr ) : 0 ); } //////////////////////////////////////////////// @@ -119,7 +119,7 @@ Tile *Codegen_x86::munchUnary( TNode *t ){ case IR_NEG:s="\tneg\t%l\n";break; default:return 0; } - return d_new Tile( s,munchReg( t->l ) ); + return new Tile( s,munchReg( t->l ) ); } Tile *Codegen_x86::munchLogical( TNode *t ){ @@ -130,7 +130,7 @@ Tile *Codegen_x86::munchLogical( TNode *t ){ case IR_XOR:s="\txor\t%l,%r\n";break; default:return 0; } - return d_new Tile( s,munchReg( t->l ),munchReg( t->r ) ); + return new Tile( s,munchReg( t->l ),munchReg( t->r ) ); } Tile *Codegen_x86::munchArith( TNode *t ){ @@ -139,10 +139,10 @@ Tile *Codegen_x86::munchArith( TNode *t ){ int shift; if( t->r->op==IR_CONST ){ if( getShift( t->r->iconst,shift ) ){ - return d_new Tile( "\tsar\t%l,byte "+itoa(shift)+"\n",munchReg( t->l ) ); + return new Tile( "\tsar\t%l,byte "+itoa(shift)+"\n",munchReg( t->l ) ); } } - Tile *q=d_new Tile( "\tcdq\n\tidiv\tecx\n",munchReg( t->l ),munchReg( t->r ) ); + Tile *q=new Tile( "\tcdq\n\tidiv\tecx\n",munchReg( t->l ),munchReg( t->r ) ); q->want_l=EAX;q->want_r=ECX;q->hits=1<r->op==IR_CONST ){ if( getShift( t->r->iconst,shift ) ){ - return d_new Tile( "\tshl\t%l,byte "+itoa(shift)+"\n",munchReg( t->l ) ); + return new Tile( "\tshl\t%l,byte "+itoa(shift)+"\n",munchReg( t->l ) ); } }else if( t->l->op==IR_CONST ){ if( getShift( t->l->iconst,shift ) ){ - return d_new Tile( "\tshl\t%l,byte "+itoa(shift)+"\n",munchReg( t->r ) ); + return new Tile( "\tshl\t%l,byte "+itoa(shift)+"\n",munchReg( t->r ) ); } } } @@ -169,12 +169,12 @@ Tile *Codegen_x86::munchArith( TNode *t ){ } if( matchMEMCONST( t->r,s ) ){ - return d_new Tile( op+"%l,"+s+"\n",munchReg( t->l ) ); + return new Tile( op+"%l,"+s+"\n",munchReg( t->l ) ); } if( t->op!=IR_SUB && matchMEMCONST( t->l,s ) ){ - return d_new Tile( op+"%l,"+s+"\n",munchReg( t->r ) ); + return new Tile( op+"%l,"+s+"\n",munchReg( t->r ) ); } - return d_new Tile( op+"%l,%r\n",munchReg( t->l ),munchReg( t->r ) ); + return new Tile( op+"%l,%r\n",munchReg( t->l ),munchReg( t->r ) ); } Tile *Codegen_x86::munchShift( TNode *t ){ @@ -187,10 +187,10 @@ Tile *Codegen_x86::munchShift( TNode *t ){ } if( matchCONST( t->r,s ) ){ - return d_new Tile( op+"%l,byte "+s+"\n",munchReg( t->l ) ); + return new Tile( op+"%l,byte "+s+"\n",munchReg( t->l ) ); } - Tile *q=d_new Tile( op+"%l,cl\n",munchReg( t->l ),munchReg( t->r ) ); + Tile *q=new Tile( op+"%l,cl\n",munchReg( t->l ),munchReg( t->r ) ); q->want_r=ECX;return q; } @@ -198,7 +198,7 @@ Tile *Codegen_x86::munchRelop( TNode *t ){ string func; Tile *q=genCompare( t,func,false ); - q=d_new Tile( "\tset"+func+"\tal\n\tmovzx\teax,al\n",q ); + q=new Tile( "\tset"+func+"\tal\n\tmovzx\teax,al\n",q ); q->want_l=EAX; return q; } @@ -212,7 +212,7 @@ Tile *Codegen_x86::munchFPUnary( TNode *t ){ case IR_FNEG:s="\tfchs\n";break; default:return 0; } - return d_new Tile( s,munchFP( t->l ) ); + return new Tile( s,munchFP( t->l ) ); } Tile *Codegen_x86::munchFPArith( TNode *t ){ @@ -224,7 +224,7 @@ Tile *Codegen_x86::munchFPArith( TNode *t ){ case IR_FDIV:s="\tfdivrp\tst(1)\n";s2="\tfdivp\tst(1)\n";break; default:return 0; } - return d_new Tile( s,s2,munchFP( t->l ),munchFP( t->r ) ); + return new Tile( s,s2,munchFP( t->l ),munchFP( t->r ) ); } Tile *Codegen_x86::munchFPRelop( TNode *t ){ @@ -240,7 +240,7 @@ Tile *Codegen_x86::munchFPRelop( TNode *t ){ } s="\tfucompp\n\tfnstsw\tax\n\tsahf\n\tset"+s+"\tal\n\tmovzx\t%l,al\n"; s2="\tfucompp\n\tfnstsw\tax\n\tsahf\n\tset"+s2+"\tal\n\tmovzx\t%l,al\n"; - Tile *q=d_new Tile( s,s2,munchFP( t->l ),munchFP( t->r ) ); + Tile *q=new Tile( s,s2,munchFP( t->l ),munchFP( t->r ) ); q->want_l=EAX; return q; } @@ -251,9 +251,9 @@ Tile *Codegen_x86::munchFPRelop( TNode *t ){ Tile *Codegen_x86::munchCall( TNode *t ){ Tile *q; if( t->l->op==IR_GLOBAL ){ - q=d_new Tile( "\tcall\t"+t->l->sconst+"\n",t->r ? munchReg( t->r ) : 0 ); + q=new Tile( "\tcall\t"+t->l->sconst+"\n",t->r ? munchReg( t->r ) : 0 ); }else{ - q=d_new Tile( "\tcall\t%l\n",munchReg( t->l ),t->r ? munchReg( t->r ) : 0 ); + q=new Tile( "\tcall\t%l\n",munchReg( t->l ),t->r ? munchReg( t->r ) : 0 ); } q->argFrame=t->iconst; q->want_l=EAX; @@ -270,26 +270,26 @@ Tile *Codegen_x86::munch( TNode *t ){ string s; switch( t->op ){ case IR_JSR: - q=d_new Tile( "\tcall\t"+t->sconst+'\n' ); + q=new Tile( "\tcall\t"+t->sconst+'\n' ); break; case IR_RET: - q=d_new Tile( "\tret\n" ); + q=new Tile( "\tret\n" ); break; case IR_RETURN: q=munchReg( t->l );q->want_l=EAX; s="\tjmp\t"+t->sconst+'\n'; - q=d_new Tile( s,q ); + q=new Tile( s,q ); break; case IR_FRETURN: q=munchFP( t->l ); s="\tjmp\t"+t->sconst+'\n'; - q=d_new Tile( s,q ); + q=new Tile( s,q ); break; case IR_CALL: q=munchCall( t ); break; case IR_JUMP: - q=d_new Tile( "\tjmp\t"+t->sconst+'\n' ); + q=new Tile( "\tjmp\t"+t->sconst+'\n' ); break; case IR_JUMPT: if( TNode *p=t->l ){ @@ -297,7 +297,7 @@ Tile *Codegen_x86::munch( TNode *t ){ if( isRelop( p->op ) ){ string func; q=genCompare( p,func,neg ); - q=d_new Tile( "\tj"+func+"\t"+t->sconst+"\n",q ); + q=new Tile( "\tj"+func+"\t"+t->sconst+"\n",q ); } } break; @@ -307,7 +307,7 @@ Tile *Codegen_x86::munch( TNode *t ){ if( isRelop( p->op ) ){ string func; q=genCompare( p,func,neg ); - q=d_new Tile( "\tj"+func+"\t"+t->sconst+"\n",q ); + q=new Tile( "\tj"+func+"\t"+t->sconst+"\n",q ); } } break; @@ -315,7 +315,7 @@ Tile *Codegen_x86::munch( TNode *t ){ if( matchMEM( t->r,s ) ){ string c; if( matchCONST( t->l,c ) ){ - q=d_new Tile( "\tmov\t"+s+","+c+"\n" ); + q=new Tile( "\tmov\t"+s+","+c+"\n" ); }else if( t->l->op==IR_ADD || t->l->op==IR_SUB ){ TNode *p=0; if( nodesEqual( t->l->l,t->r ) ) p=t->l->r; @@ -327,13 +327,13 @@ Tile *Codegen_x86::munch( TNode *t ){ case IR_SUB:op="\tsub\t";break; } if( matchCONST( p,c ) ){ - q=d_new Tile( op+s+","+c+"\n" ); + q=new Tile( op+s+","+c+"\n" ); }else{ - q=d_new Tile( op+s+",%l\n",munchReg( p ) ); + q=new Tile( op+s+",%l\n",munchReg( p ) ); } } } - if( !q ) q=d_new Tile( "\tmov\t"+s+",%l\n",munchReg( t->l ) ); + if( !q ) q=new Tile( "\tmov\t"+s+",%l\n",munchReg( t->l ) ); } break; } @@ -352,13 +352,13 @@ Tile *Codegen_x86::munchReg( TNode *t ){ switch( t->op ){ case IR_JUMPT: - q=d_new Tile( "\tand\t%l,%l\n\tjnz\t"+t->sconst+'\n',munchReg( t->l ) ); + q=new Tile( "\tand\t%l,%l\n\tjnz\t"+t->sconst+'\n',munchReg( t->l ) ); break; case IR_JUMPF: - q=d_new Tile( "\tand\t%l,%l\n\tjz\t"+t->sconst+'\n',munchReg( t->l ) ); + q=new Tile( "\tand\t%l,%l\n\tjz\t"+t->sconst+'\n',munchReg( t->l ) ); break; case IR_JUMPGE: - q=d_new Tile( "\tcmp\t%l,%r\n\tjnc\t"+t->sconst+'\n',munchReg( t->l ),munchReg( t->r ) ); + q=new Tile( "\tcmp\t%l,%r\n\tjnc\t"+t->sconst+'\n',munchReg( t->l ),munchReg( t->r ) ); break; case IR_CALL: q=munchCall( t ); @@ -366,37 +366,37 @@ Tile *Codegen_x86::munchReg( TNode *t ){ case IR_MOVE: //MUST BE MOVE TO MEM! if( matchMEM( t->r,s ) ){ - q=d_new Tile( "\tmov\t"+s+",%l\n",munchReg( t->l ) ); + q=new Tile( "\tmov\t"+s+",%l\n",munchReg( t->l ) ); }else if( t->r->op==IR_MEM ){ - q=d_new Tile( "\tmov\t[%r],%l\n",munchReg( t->l ),munchReg( t->r->l ) ); + q=new Tile( "\tmov\t[%r],%l\n",munchReg( t->l ),munchReg( t->r->l ) ); } break; case IR_MEM: if( matchMEM( t,s ) ){ - q=d_new Tile( "\tmov\t%l,"+s+"\n" ); + q=new Tile( "\tmov\t%l,"+s+"\n" ); }else{ - q=d_new Tile( "\tmov\t%l,[%l]\n",munchReg( t->l ) ); + q=new Tile( "\tmov\t%l,[%l]\n",munchReg( t->l ) ); } break; case IR_SEQ: - q=d_new Tile( "",munch(t->l),munch(t->r) ); + q=new Tile( "",munch(t->l),munch(t->r) ); break; case IR_ARG: - q=d_new Tile( "\tlea\t%l,[esp"+itoa_sgn(t->iconst)+"]\n" ); + q=new Tile( "\tlea\t%l,[esp"+itoa_sgn(t->iconst)+"]\n" ); break; case IR_LOCAL: - q=d_new Tile( "\tlea\t%l,[ebp"+itoa_sgn(t->iconst)+"]\n" ); + q=new Tile( "\tlea\t%l,[ebp"+itoa_sgn(t->iconst)+"]\n" ); break; case IR_GLOBAL: - q=d_new Tile( string( "\tmov\t%l," )+t->sconst+'\n' ); + q=new Tile( string( "\tmov\t%l," )+t->sconst+'\n' ); break; case IR_CAST: q=munchFP( t->l ); s="\tpush\t%l\n\tfistp\t[esp]\n\tpop\t%l\n"; - q=d_new Tile( s,q ); + q=new Tile( s,q ); break; case IR_CONST: - q=d_new Tile( "\tmov\t%l,"+itoa(t->iconst)+"\n" ); + q=new Tile( "\tmov\t%l,"+itoa(t->iconst)+"\n" ); break; case IR_NEG: q=munchUnary( t ); @@ -419,7 +419,7 @@ Tile *Codegen_x86::munchReg( TNode *t ){ default: q=munchFP( t );if( !q ) return 0; s="\tpush\t%l\n\tfstp\t[esp]\n\tpop\t%l\n"; - q=d_new Tile( s,q ); + q=new Tile( s,q ); } return q; } @@ -439,7 +439,7 @@ Tile *Codegen_x86::munchFP( TNode *t ){ break; case IR_FCAST: s="\tpush\t%l\n\tfild\t[esp]\n\tpop\t%l\n"; - q=d_new Tile( s,munchReg( t->l ) ); + q=new Tile( s,munchReg( t->l ) ); break; case IR_FNEG: q=munchFPUnary( t ); @@ -450,7 +450,7 @@ Tile *Codegen_x86::munchFP( TNode *t ){ default: q=munchReg( t );if( !q ) return 0; s="\tpush\t%l\n\tfld\t[esp]\n\tpop\t%l\n"; - q=d_new Tile( s,q ); + q=new Tile( s,q ); } return q; } diff --git a/compiler/decl.cpp b/compiler/decl.cpp index 14199c2..5f0e544 100644 --- a/compiler/decl.cpp +++ b/compiler/decl.cpp @@ -29,7 +29,7 @@ Decl *DeclSeq::findDecl( const string &s ){ Decl *DeclSeq::insertDecl( const string &s,Type *t,int kind,ConstType *d ){ if( findDecl( s ) ) return 0; - decls.push_back( d_new Decl( s,t,kind,d ) ); + decls.push_back( new Decl( s,t,kind,d ) ); return decls.back(); } diff --git a/compiler/declnode.cpp b/compiler/declnode.cpp index fa5f902..11c62af 100644 --- a/compiler/declnode.cpp +++ b/compiler/declnode.cpp @@ -69,9 +69,9 @@ void VarDeclNode::proto(DeclSeq *d, Environ *e) { if (!c) ex("Expression must be constant"); - if (ty == Type::int_type) ty = d_new ConstType(c->intValue()); - else if (ty == Type::float_type) ty = d_new ConstType(c->floatValue()); - else ty = d_new ConstType(c->stringValue()); + if (ty == Type::int_type) ty = new ConstType(c->intValue()); + else if (ty == Type::float_type) ty = new ConstType(c->floatValue()); + else ty = new ConstType(c->stringValue()); e->types.push_back(ty); delete expr; expr = 0; } @@ -87,7 +87,7 @@ void VarDeclNode::proto(DeclSeq *d, Environ *e) { Decl *decl = d->insertDecl(ident, ty, kind, defType); if (!decl) ex("Duplicate variable name"); - if (expr) sem_var = d_new DeclVarNode(decl); + if (expr) sem_var = new DeclVarNode(decl); } void VarDeclNode::semant(Environ *e) { @@ -106,9 +106,9 @@ void VarDeclNode::translate(Codegen *g) { ////////////////////////// void FuncDeclNode::proto(DeclSeq *d, Environ *e) { Type *t = tagType(tag, e); if (!t) t = Type::int_type; - a_ptr decls(d_new DeclSeq()); + a_ptr decls(new DeclSeq()); params->proto(decls, e); - sem_type = d_new FuncType(t, decls.release(), false, false); + sem_type = new FuncType(t, decls.release(), false, false); if (!d->insertDecl(ident, sem_type, DECL_FUNC)) { delete sem_type; ex("duplicate identifier"); } @@ -117,7 +117,7 @@ void FuncDeclNode::proto(DeclSeq *d, Environ *e) { void FuncDeclNode::semant(Environ *e) { - sem_env = d_new Environ(genLabel(), sem_type->returnType, 1, e); + sem_env = new Environ(genLabel(), sem_type->returnType, 1, e); DeclSeq *decls = sem_env->decls; int k; @@ -156,7 +156,7 @@ void FuncDeclNode::translate(Codegen *g) { //leave the function g->label(sem_env->funcLabel + "_leave"); t = deleteVars(sem_env); - if (g->debug) t = d_new TNode(IR_SEQ, call("__bbDebugLeave"), t); + if (g->debug) t = new TNode(IR_SEQ, call("__bbDebugLeave"), t); g->leave(t, sem_type->params->size() * 4); } @@ -164,7 +164,7 @@ void FuncDeclNode::translate(Codegen *g) { // Type Declaration // ////////////////////// void StructDeclNode::proto(DeclSeq *d, Environ *e) { - sem_type = d_new StructType(ident, d_new DeclSeq()); + sem_type = new StructType(ident, new DeclSeq()); if (!d->insertDecl(ident, sem_type, DECL_STRUCT)) { delete sem_type; ex("Duplicate identifier"); } @@ -262,7 +262,7 @@ void VectorDeclNode::proto(DeclSeq *d, Environ *env) { sizes.push_back(n + 1); } string label = genLabel(); - sem_type = d_new VectorType(label, ty, sizes); + sem_type = new VectorType(label, ty, sizes); if (!d->insertDecl(ident, sem_type, kind)) { delete sem_type; ex("Duplicate identifier"); } diff --git a/compiler/environ.cpp b/compiler/environ.cpp index 46c2bfa..d8bf64a 100644 --- a/compiler/environ.cpp +++ b/compiler/environ.cpp @@ -4,9 +4,9 @@ Environ::Environ( const string &f,Type *r,int l,Environ *gs ) :funcLabel(f),returnType(r),level(l),globals(gs){ - decls=d_new DeclSeq(); - typeDecls=d_new DeclSeq(); - funcDecls=d_new DeclSeq(); + decls=new DeclSeq(); + typeDecls=new DeclSeq(); + funcDecls=new DeclSeq(); if( globals ) globals->children.push_back( this ); } @@ -57,7 +57,7 @@ Label *Environ::findLabel( const string &s ){ } Label *Environ::insertLabel( const string &s,int def,int src,int sz ){ - Label *l=d_new Label( s,def,src,sz ); + Label *l=new Label( s,def,src,sz ); labels.push_back( l );return l; } diff --git a/compiler/exprnode.cpp b/compiler/exprnode.cpp index 51e0328..c29d759 100644 --- a/compiler/exprnode.cpp +++ b/compiler/exprnode.cpp @@ -13,7 +13,7 @@ ExprNode *ExprNode::castTo(Type *ty, Environ *e) { ex("Illegal type conversion"); } - ExprNode *cast = d_new CastNode(this, ty); + ExprNode *cast = new CastNode(this, ty); cast->semant(e); return cast; } @@ -25,9 +25,9 @@ ExprNode *CastNode::semant(Environ *e) { if (ConstNode *c = expr->constNode()) { ExprNode *e; - if (type == Type::int_type) e = d_new IntConstNode(c->intValue()); - else if (type == Type::float_type) e = d_new FloatConstNode(c->floatValue()); - else e = d_new StringConstNode(c->stringValue()); + if (type == Type::int_type) e = new IntConstNode(c->intValue()); + else if (type == Type::float_type) e = new FloatConstNode(c->floatValue()); + else e = new StringConstNode(c->stringValue()); delete this; return e; } @@ -43,11 +43,11 @@ TNode *CastNode::translate(Codegen *g) { TNode *t = expr->translate(g); if (expr->sem_type == Type::float_type && sem_type == Type::int_type) { //float->int - return d_new TNode(IR_CAST, t, 0); + return new TNode(IR_CAST, t, 0); } if (expr->sem_type == Type::int_type && sem_type == Type::float_type) { //int->float - return d_new TNode(IR_FCAST, t, 0); + return new TNode(IR_FCAST, t, 0); } if (expr->sem_type == Type::string_type && sem_type == Type::int_type) { //str->int @@ -92,17 +92,17 @@ TNode *ExprSeqNode::translate(Codegen *g, bool cfunc) { if (ty->stringType()) { q = call("__bbStrToCStr", q); } else if (ty->structType()) { - q = d_new TNode(IR_MEM, q); + q = new TNode(IR_MEM, q); } else if (ty == Type::void_type) { - q = d_new TNode(IR_MEM, add(q, iconst(4))); + q = new TNode(IR_MEM, add(q, iconst(4))); } } TNode *p; - p = d_new TNode(IR_ARG, 0, 0, k * 4); - p = d_new TNode(IR_MEM, p, 0); - p = d_new TNode(IR_MOVE, q, p); - p = d_new TNode(IR_SEQ, p, 0); + p = new TNode(IR_ARG, 0, 0, k * 4); + p = new TNode(IR_MEM, p, 0); + p = new TNode(IR_MOVE, q, p); + p = new TNode(IR_SEQ, p, 0); if (l) l->r = p; else t = p; l = p; @@ -167,14 +167,14 @@ TNode *CallNode::translate(Codegen *g) { TNode *r = exprs->translate(g, f->cfunc); if (f->userlib) { - l = d_new TNode(IR_MEM, l); + l = new TNode(IR_MEM, l); usedfuncs.insert(ident); } if (sem_type == Type::float_type) { - t = d_new TNode(IR_FCALL, l, r, exprs->size() * 4); + t = new TNode(IR_FCALL, l, r, exprs->size() * 4); } else { - t = d_new TNode(IR_CALL, l, r, exprs->size() * 4); + t = new TNode(IR_CALL, l, r, exprs->size() * 4); } if (f->returnType->stringType()) { @@ -209,7 +209,7 @@ IntConstNode::IntConstNode(int n) :value(n) { } TNode *IntConstNode::translate(Codegen *g) { - return d_new TNode(IR_CONST, 0, 0, value); + return new TNode(IR_CONST, 0, 0, value); } int IntConstNode::intValue() { @@ -232,7 +232,7 @@ FloatConstNode::FloatConstNode(float f) :value(f) { } TNode *FloatConstNode::translate(Codegen *g) { - return d_new TNode(IR_CONST, 0, 0, *(int*)&value); + return new TNode(IR_CONST, 0, 0, *(int*)&value); } int FloatConstNode::intValue() { @@ -291,17 +291,17 @@ ExprNode *UniExprNode::semant(Environ *e) { ExprNode *e; if (sem_type == Type::int_type) { switch (op) { - case '+':e = d_new IntConstNode(+c->intValue()); break; - case '-':e = d_new IntConstNode(-c->intValue()); break; - case ABS:e = d_new IntConstNode(c->intValue() >= 0 ? c->intValue() : -c->intValue()); break; - case SGN:e = d_new IntConstNode(c->intValue() > 0 ? 1 : (c->intValue() < 0 ? -1 : 0)); break; + case '+':e = new IntConstNode(+c->intValue()); break; + case '-':e = new IntConstNode(-c->intValue()); break; + case ABS:e = new IntConstNode(c->intValue() >= 0 ? c->intValue() : -c->intValue()); break; + case SGN:e = new IntConstNode(c->intValue() > 0 ? 1 : (c->intValue() < 0 ? -1 : 0)); break; } } else { switch (op) { - case '+':e = d_new FloatConstNode(+c->floatValue()); break; - case '-':e = d_new FloatConstNode(-c->floatValue()); break; - case ABS:e = d_new FloatConstNode(c->floatValue() >= 0 ? c->floatValue() : -c->floatValue()); break; - case SGN:e = d_new FloatConstNode(c->floatValue() > 0 ? 1 : (c->floatValue() < 0 ? -1 : 0)); break; + case '+':e = new FloatConstNode(+c->floatValue()); break; + case '-':e = new FloatConstNode(-c->floatValue()); break; + case ABS:e = new FloatConstNode(c->floatValue() >= 0 ? c->floatValue() : -c->floatValue()); break; + case SGN:e = new FloatConstNode(c->floatValue() > 0 ? 1 : (c->floatValue() < 0 ? -1 : 0)); break; } } delete this; @@ -328,7 +328,7 @@ TNode *UniExprNode::translate(Codegen *g) { case SGN:return fcall("__bbFSgn", l); } } - return d_new TNode(n, l, 0); + return new TNode(n, l, 0); } ///////////////////////////////////////////////////// @@ -341,12 +341,12 @@ ExprNode *BinExprNode::semant(Environ *e) { if (lc && rc) { ExprNode *expr = nullptr; switch (op) { - case AND:expr = d_new IntConstNode(lc->intValue() & rc->intValue()); break; - case OR: expr = d_new IntConstNode(lc->intValue() | rc->intValue()); break; - case XOR:expr = d_new IntConstNode(lc->intValue() ^ rc->intValue()); break; - case SHL:expr = d_new IntConstNode(lc->intValue() << rc->intValue()); break; - case SHR:expr = d_new IntConstNode((unsigned)lc->intValue() >> rc->intValue()); break; - case SAR:expr = d_new IntConstNode(lc->intValue() >> rc->intValue()); break; + case AND:expr = new IntConstNode(lc->intValue() & rc->intValue()); break; + case OR: expr = new IntConstNode(lc->intValue() | rc->intValue()); break; + case XOR:expr = new IntConstNode(lc->intValue() ^ rc->intValue()); break; + case SHL:expr = new IntConstNode(lc->intValue() << rc->intValue()); break; + case SHR:expr = new IntConstNode((unsigned)lc->intValue() >> rc->intValue()); break; + case SAR:expr = new IntConstNode(lc->intValue() >> rc->intValue()); break; } delete this; return expr; @@ -363,7 +363,7 @@ TNode *BinExprNode::translate(Codegen *g) { case AND:n = IR_AND; break; case OR:n = IR_OR; break; case XOR:n = IR_XOR; break; case SHL:n = IR_SHL; break; case SHR:n = IR_SHR; break; case SAR:n = IR_SAR; break; } - return d_new TNode(n, l, r); + return new TNode(n, l, r); } /////////////////////////// @@ -397,23 +397,23 @@ ExprNode *ArithExprNode::semant(Environ *e) { if (lc && rc) { ExprNode *expr = nullptr; if (sem_type == Type::string_type) { - expr = d_new StringConstNode(lc->stringValue() + rc->stringValue()); + expr = new StringConstNode(lc->stringValue() + rc->stringValue()); } else if (sem_type == Type::int_type) { switch (op) { - case '+':expr = d_new IntConstNode(lc->intValue() + rc->intValue()); break; - case '-':expr = d_new IntConstNode(lc->intValue() - rc->intValue()); break; - case '*':expr = d_new IntConstNode(lc->intValue()*rc->intValue()); break; - case '/':expr = d_new IntConstNode(lc->intValue() / rc->intValue()); break; - case MOD:expr = d_new IntConstNode(lc->intValue() % rc->intValue()); break; + case '+':expr = new IntConstNode(lc->intValue() + rc->intValue()); break; + case '-':expr = new IntConstNode(lc->intValue() - rc->intValue()); break; + case '*':expr = new IntConstNode(lc->intValue()*rc->intValue()); break; + case '/':expr = new IntConstNode(lc->intValue() / rc->intValue()); break; + case MOD:expr = new IntConstNode(lc->intValue() % rc->intValue()); break; } } else { switch (op) { - case '+':expr = d_new FloatConstNode(lc->floatValue() + rc->floatValue()); break; - case '-':expr = d_new FloatConstNode(lc->floatValue() - rc->floatValue()); break; - case '*':expr = d_new FloatConstNode(lc->floatValue()*rc->floatValue()); break; - case '/':expr = d_new FloatConstNode(lc->floatValue() / rc->floatValue()); break; - case MOD:expr = d_new FloatConstNode(fmod(lc->floatValue(), rc->floatValue())); break; - case '^':expr = d_new FloatConstNode(pow(lc->floatValue(), rc->floatValue())); break; + case '+':expr = new FloatConstNode(lc->floatValue() + rc->floatValue()); break; + case '-':expr = new FloatConstNode(lc->floatValue() - rc->floatValue()); break; + case '*':expr = new FloatConstNode(lc->floatValue()*rc->floatValue()); break; + case '/':expr = new FloatConstNode(lc->floatValue() / rc->floatValue()); break; + case MOD:expr = new FloatConstNode(fmod(lc->floatValue(), rc->floatValue())); break; + case '^':expr = new FloatConstNode(pow(lc->floatValue(), rc->floatValue())); break; } } delete this; @@ -443,7 +443,7 @@ TNode *ArithExprNode::translate(Codegen *g) { case '^':return fcall("__bbFPow", l, r); } } - return d_new TNode(n, l, r); + return new TNode(n, l, r); } ///////////////////////// @@ -470,30 +470,30 @@ ExprNode *RelExprNode::semant(Environ *e) { ExprNode *expr = nullptr; if (opType == Type::string_type) { switch (op) { - case '<':expr = d_new IntConstNode(lc->stringValue() < rc->stringValue()); break; - case '=':expr = d_new IntConstNode(lc->stringValue() == rc->stringValue()); break; - case '>':expr = d_new IntConstNode(lc->stringValue() > rc->stringValue()); break; - case LE: expr = d_new IntConstNode(lc->stringValue() <= rc->stringValue()); break; - case NE: expr = d_new IntConstNode(lc->stringValue() != rc->stringValue()); break; - case GE: expr = d_new IntConstNode(lc->stringValue() >= rc->stringValue()); break; + case '<':expr = new IntConstNode(lc->stringValue() < rc->stringValue()); break; + case '=':expr = new IntConstNode(lc->stringValue() == rc->stringValue()); break; + case '>':expr = new IntConstNode(lc->stringValue() > rc->stringValue()); break; + case LE: expr = new IntConstNode(lc->stringValue() <= rc->stringValue()); break; + case NE: expr = new IntConstNode(lc->stringValue() != rc->stringValue()); break; + case GE: expr = new IntConstNode(lc->stringValue() >= rc->stringValue()); break; } } else if (opType == Type::float_type) { switch (op) { - case '<':expr = d_new IntConstNode(lc->floatValue() < rc->floatValue()); break; - case '=':expr = d_new IntConstNode(lc->floatValue() == rc->floatValue()); break; - case '>':expr = d_new IntConstNode(lc->floatValue() > rc->floatValue()); break; - case LE: expr = d_new IntConstNode(lc->floatValue() <= rc->floatValue()); break; - case NE: expr = d_new IntConstNode(lc->floatValue() != rc->floatValue()); break; - case GE: expr = d_new IntConstNode(lc->floatValue() >= rc->floatValue()); break; + case '<':expr = new IntConstNode(lc->floatValue() < rc->floatValue()); break; + case '=':expr = new IntConstNode(lc->floatValue() == rc->floatValue()); break; + case '>':expr = new IntConstNode(lc->floatValue() > rc->floatValue()); break; + case LE: expr = new IntConstNode(lc->floatValue() <= rc->floatValue()); break; + case NE: expr = new IntConstNode(lc->floatValue() != rc->floatValue()); break; + case GE: expr = new IntConstNode(lc->floatValue() >= rc->floatValue()); break; } } else { switch (op) { - case '<':expr = d_new IntConstNode(lc->intValue() < rc->intValue()); break; - case '=':expr = d_new IntConstNode(lc->intValue() == rc->intValue()); break; - case '>':expr = d_new IntConstNode(lc->intValue() > rc->intValue()); break; - case LE: expr = d_new IntConstNode(lc->intValue() <= rc->intValue()); break; - case NE: expr = d_new IntConstNode(lc->intValue() != rc->intValue()); break; - case GE: expr = d_new IntConstNode(lc->intValue() >= rc->intValue()); break; + case '<':expr = new IntConstNode(lc->intValue() < rc->intValue()); break; + case '=':expr = new IntConstNode(lc->intValue() == rc->intValue()); break; + case '>':expr = new IntConstNode(lc->intValue() > rc->intValue()); break; + case LE: expr = new IntConstNode(lc->intValue() <= rc->intValue()); break; + case NE: expr = new IntConstNode(lc->intValue() != rc->intValue()); break; + case GE: expr = new IntConstNode(lc->intValue() >= rc->intValue()); break; } } delete this; @@ -591,7 +591,7 @@ ExprNode *NullNode::semant(Environ *e) { } TNode *NullNode::translate(Codegen *g) { - return d_new TNode(IR_CONST, 0, 0, 0); + return new TNode(IR_CONST, 0, 0, 0); } ///////////////// diff --git a/compiler/node.cpp b/compiler/node.cpp index bd90b8b..bd56388 100644 --- a/compiler/node.cpp +++ b/compiler/node.cpp @@ -29,7 +29,7 @@ void Node::ex( const string &e,int pos,const string &f ){ VarNode *Node::genLocal( Environ *e,Type *ty ){ string t=genLabel(); Decl *d=e->decls->insertDecl( t,ty,DECL_LOCAL ); - return d_new DeclVarNode( d ); + return new DeclVarNode( d ); } ///////////////////////////////////////////////// @@ -39,9 +39,9 @@ ConstNode *Node::constValue( Type *ty ){ ConstType *c=ty->constType(); if( !c ) return 0; ty=c->valueType; - if( ty==Type::int_type ) return d_new IntConstNode( c->intValue ); - if( ty==Type::float_type ) return d_new FloatConstNode( c->floatValue ); - return d_new StringConstNode( c->stringValue ); + if( ty==Type::int_type ) return new IntConstNode( c->intValue ); + if( ty==Type::float_type ) return new FloatConstNode( c->floatValue ); + return new StringConstNode( c->stringValue ); } /////////////////////////////////////////////////////// @@ -74,10 +74,10 @@ TNode *Node::createVars( Environ *e ){ Decl *d=e->decls->decls[k]; if( d->kind!=DECL_LOCAL ) continue; if( d->type->vectorType() ) continue; - if( !t ) t=d_new TNode( IR_CONST,0,0,0 ); - TNode *p=d_new TNode( IR_LOCAL,0,0,d->offset ); - p=d_new TNode( IR_MEM,p,0 ); - t=d_new TNode( IR_MOVE,t,p ); + if( !t ) t=new TNode( IR_CONST,0,0,0 ); + TNode *p=new TNode( IR_LOCAL,0,0,d->offset ); + p=new TNode( IR_MEM,p,0 ); + t=new TNode( IR_MOVE,t,p ); } //initialize vectors for( k=0;kdecls->size();++k ){ @@ -123,7 +123,7 @@ TNode *Node::deleteVars( Environ *e ){ } } if( !func.size() ) continue; - p=d_new TNode( IR_SEQ,call( func,p1,p2 ),0 ); + p=new TNode( IR_SEQ,call( func,p1,p2 ),0 ); (l ? l->r : t)=p; l=p; } @@ -150,12 +150,12 @@ TNode *Node::compare( int op,TNode *l,TNode *r,Type *ty ){ } if( ty==Type::string_type ){ l=call( "__bbStrCompare",l,r ); - r=d_new TNode( IR_CONST,0,0,0 ); + r=new TNode( IR_CONST,0,0,0 ); }else if( ty->structType() ){ l=call( "__bbObjCompare",l,r ); - r=d_new TNode( IR_CONST,0,0,0 ); + r=new TNode( IR_CONST,0,0,0 ); } - return d_new TNode( n,l,r ); + return new TNode( n,l,r ); } ///////////////////////////////// @@ -196,8 +196,8 @@ TNode *Node::call( const string &func,TNode *a0,TNode *a1,TNode *a2 ){ } } } - TNode *l=d_new TNode( IR_GLOBAL,0,0,func ); - return d_new TNode( IR_CALL,l,t,size ); + TNode *l=new TNode( IR_GLOBAL,0,0,func ); + return new TNode( IR_CALL,l,t,size ); } //////////////////////////////////////////////////////// @@ -218,67 +218,67 @@ TNode *Node::fcall( const string &func,TNode *a0,TNode *a1,TNode *a2 ){ } } } - TNode *l=d_new TNode( IR_GLOBAL,0,0,func ); - return d_new TNode( IR_FCALL,l,t,size ); + TNode *l=new TNode( IR_GLOBAL,0,0,func ); + return new TNode( IR_FCALL,l,t,size ); } TNode *Node::seq( TNode *l,TNode *r ){ - return d_new TNode( IR_SEQ,l,r ); + return new TNode( IR_SEQ,l,r ); } TNode *Node::move( TNode *src,TNode *dest ){ - return d_new TNode( IR_MOVE,src,dest ); + return new TNode( IR_MOVE,src,dest ); } TNode *Node::global( const string &s ){ - return d_new TNode( IR_GLOBAL,0,0,s ); + return new TNode( IR_GLOBAL,0,0,s ); } TNode *Node::local( int offset ){ - return d_new TNode( IR_LOCAL,0,0,offset ); + return new TNode( IR_LOCAL,0,0,offset ); } TNode *Node::arg( int offset ){ - return d_new TNode( IR_ARG,0,0,offset ); + return new TNode( IR_ARG,0,0,offset ); } TNode *Node::mem( TNode *ref ){ - return d_new TNode( IR_MEM,ref,0 ); + return new TNode( IR_MEM,ref,0 ); } TNode *Node::add( TNode *l,TNode *r ){ - return d_new TNode( IR_ADD,l,r ); + return new TNode( IR_ADD,l,r ); } TNode *Node::mul( TNode *l,TNode *r ){ - return d_new TNode( IR_MUL,l,r ); + return new TNode( IR_MUL,l,r ); } TNode *Node::iconst( int n ){ - return d_new TNode( IR_CONST,0,0,n ); + return new TNode( IR_CONST,0,0,n ); } TNode *Node::ret(){ - return d_new TNode( IR_RET,0,0 ); + return new TNode( IR_RET,0,0 ); } TNode *Node::jsr( const string &s ){ - return d_new TNode( IR_JSR,0,0,s ); + return new TNode( IR_JSR,0,0,s ); } TNode *Node::jump( const string &s ){ - return d_new TNode( IR_JUMP,0,0,s ); + return new TNode( IR_JUMP,0,0,s ); } TNode *Node::jumpt( TNode *expr,const string &s ){ - return d_new TNode( IR_JUMPT,expr,0,s ); + return new TNode( IR_JUMPT,expr,0,s ); } TNode *Node::jumpf( TNode *expr,const string &s ){ - return d_new TNode( IR_JUMPF,expr,0,s ); + return new TNode( IR_JUMPF,expr,0,s ); } TNode *Node::jumpge( TNode *l,TNode *r,const string &s ){ - return d_new TNode( IR_JUMPGE,l,r,s ); + return new TNode( IR_JUMPGE,l,r,s ); } diff --git a/compiler/parser.cpp b/compiler/parser.cpp index 5a125be..0179a8e 100644 --- a/compiler/parser.cpp +++ b/compiler/parser.cpp @@ -22,10 +22,10 @@ ProgNode *Parser::parse( const string &main ){ incfile=main; - consts=d_new DeclSeqNode(); - structs=d_new DeclSeqNode(); - funcs=d_new DeclSeqNode(); - datas=d_new DeclSeqNode(); + consts=new DeclSeqNode(); + structs=new DeclSeqNode(); + funcs=new DeclSeqNode(); + datas=new DeclSeqNode(); StmtSeqNode *stmts=0; try{ @@ -36,7 +36,7 @@ ProgNode *Parser::parse( const string &main ){ throw; } - return d_new ProgNode( consts,structs,funcs,datas,stmts ); + return new ProgNode( consts,structs,funcs,datas,stmts ); } void Parser::ex( const string &s ){ @@ -71,7 +71,7 @@ void Parser::parseChar( int c ){ } StmtSeqNode *Parser::parseStmtSeq( int scope ){ - a_ptr stmts( d_new StmtSeqNode( incfile ) ); + a_ptr stmts( new StmtSeqNode( incfile ) ); parseStmtSeq( stmts,scope ); return stmts.release(); } @@ -116,7 +116,7 @@ void Parser::parseStmtSeq( StmtSeqNode *stmts,int scope ){ a_ptr ss( parseStmtSeq( scope ) ); if( toker->curr()!=EOF ) exp( "end-of-file" ); - result=d_new IncludeNode( incfile,ss.release() ); + result=new IncludeNode( incfile,ss.release() ); toker=t_toker; incfile=t_inc; @@ -146,14 +146,14 @@ void Parser::parseStmtSeq( StmtSeqNode *stmts,int scope ){ toker->next(); }else exprs=parseExprSeq(); }else exprs=parseExprSeq(); - CallNode *call=d_new CallNode( ident,tag,exprs ); - result=d_new ExprStmtNode( call ); + CallNode *call=new CallNode( ident,tag,exprs ); + result=new ExprStmtNode( call ); }else{ //must be a var a_ptr var( parseVar( ident,tag ) ); if( toker->curr()!='=' ) exp( "variable assignment" ); toker->next();ExprNode *expr=parseExpr( false ); - result=d_new AssNode( var.release(),expr ); + result=new AssNode( var.release(),expr ); } } break; @@ -171,7 +171,7 @@ void Parser::parseStmtSeq( StmtSeqNode *stmts,int scope ){ int pos=toker->pos(); if( toker->curr()!=WEND ) exp( "'Wend'" ); toker->next(); - result=d_new WhileNode( expr.release(),stmts.release(),pos ); + result=new WhileNode( expr.release(),stmts.release(),pos ); } break; case REPEAT: @@ -182,13 +182,13 @@ void Parser::parseStmtSeq( StmtSeqNode *stmts,int scope ){ int pos=toker->pos(); if( curr!=UNTIL && curr!=FOREVER ) exp( "'Until' or 'Forever'" ); toker->next();if( curr==UNTIL ) expr=parseExpr( false ); - result=d_new RepeatNode( stmts.release(),expr,pos ); + result=new RepeatNode( stmts.release(),expr,pos ); } break; case SELECT: { toker->next();ExprNode *expr=parseExpr( false ); - a_ptr selNode( d_new SelectNode( expr ) ); + a_ptr selNode( new SelectNode( expr ) ); for(;;){ while( isTerm( toker->curr() ) ) toker->next(); if( toker->curr()==CASE ){ @@ -196,7 +196,7 @@ void Parser::parseStmtSeq( StmtSeqNode *stmts,int scope ){ a_ptr exprs( parseExprSeq() ); if( !exprs->size() ) exp( "expression sequence" ); a_ptr stmts( parseStmtSeq( STMTS_BLOCK ) ); - selNode->push_back( d_new CaseNode( exprs.release(),stmts.release() ) ); + selNode->push_back( new CaseNode( exprs.release(),stmts.release() ) ); continue; }else if( toker->curr()==DEFAULT ){ toker->next(); @@ -226,7 +226,7 @@ void Parser::parseStmtSeq( StmtSeqNode *stmts,int scope ){ int pos=toker->pos(); if( toker->curr()!=NEXT ) exp( "'Next'" ); toker->next(); - result=d_new ForEachNode( var.release(),ident,stmts.release(),pos ); + result=new ForEachNode( var.release(),ident,stmts.release(),pos ); }else{ a_ptr from,to,step; from=parseExpr( false ); @@ -235,43 +235,43 @@ void Parser::parseStmtSeq( StmtSeqNode *stmts,int scope ){ //step... if( toker->curr()==STEP ){ toker->next();step=parseExpr( false ); - }else step=d_new IntConstNode( 1 ); + }else step=new IntConstNode( 1 ); stmts=parseStmtSeq( STMTS_BLOCK ); int pos=toker->pos(); if( toker->curr()!=NEXT ) exp( "'Next'" ); toker->next(); - result=d_new ForNode( var.release(),from.release(),to.release(),step.release(),stmts.release(),pos ); + result=new ForNode( var.release(),from.release(),to.release(),step.release(),stmts.release(),pos ); } } break; case EXIT: { - toker->next();result=d_new ExitNode(); + toker->next();result=new ExitNode(); } break; case GOTO: { - toker->next();string t=parseIdent();result=d_new GotoNode( t ); + toker->next();string t=parseIdent();result=new GotoNode( t ); } break; case GOSUB: { - toker->next();string t=parseIdent();result=d_new GosubNode( t ); + toker->next();string t=parseIdent();result=new GosubNode( t ); } break; case RETURN: { - toker->next();result=d_new ReturnNode( parseExpr( true ) ); + toker->next();result=new ReturnNode( parseExpr( true ) ); } break; case BBDELETE: { if( toker->next()==EACH ){ toker->next();string t=parseIdent(); - result=d_new DeleteEachNode( t ); + result=new DeleteEachNode( t ); }else{ ExprNode *expr=parseExpr( false ); - result=d_new DeleteNode( expr ); + result=new DeleteNode( expr ); } } break; @@ -282,28 +282,28 @@ void Parser::parseStmtSeq( StmtSeqNode *stmts,int scope ){ if( toker->curr()!=BEFORE && toker->curr()!=AFTER ) exp( "'Before' or 'After'" ); bool before=toker->curr()==BEFORE;toker->next(); a_ptr expr2( parseExpr( false ) ); - result=d_new InsertNode( expr1.release(),expr2.release(),before ); + result=new InsertNode( expr1.release(),expr2.release(),before ); } break; case READ: do{ toker->next();VarNode *var=parseVar(); - StmtNode *stmt=d_new ReadNode( var ); + StmtNode *stmt=new ReadNode( var ); stmt->pos=pos;pos=toker->pos(); stmts->push_back( stmt ); }while( toker->curr()==',' ); break; case RESTORE: if( toker->next()==IDENT ){ - result=d_new RestoreNode( toker->text() );toker->next(); - }else result=d_new RestoreNode( "" ); + result=new RestoreNode( toker->text() );toker->next(); + }else result=new RestoreNode( "" ); break; case DATA: if( scope!=STMTS_PROG ) ex( "'Data' can only appear in main program" ); do{ toker->next(); ExprNode *expr=parseExpr( false ); - datas->push_back( d_new DataDeclNode( expr ) ); + datas->push_back( new DataDeclNode( expr ) ); }while( toker->curr()==',' ); break; case TYPE: @@ -332,7 +332,7 @@ void Parser::parseStmtSeq( StmtSeqNode *stmts,int scope ){ do{ toker->next(); DeclNode *d=parseVarDecl( DECL_LOCAL,false ); - StmtNode *stmt=d_new DeclStmtNode( d ); + StmtNode *stmt=new DeclStmtNode( d ); stmt->pos=pos;pos=toker->pos(); stmts->push_back( stmt ); }while( toker->curr()==',' ); @@ -342,7 +342,7 @@ void Parser::parseStmtSeq( StmtSeqNode *stmts,int scope ){ do{ toker->next(); DeclNode *d=parseVarDecl( DECL_GLOBAL,false ); - StmtNode *stmt=d_new DeclStmtNode( d ); + StmtNode *stmt=new DeclStmtNode( d ); stmt->pos=pos;pos=toker->pos(); stmts->push_back( stmt ); }while( toker->curr()==',' ); @@ -350,7 +350,7 @@ void Parser::parseStmtSeq( StmtSeqNode *stmts,int scope ){ case '.': { toker->next();string t=parseIdent(); - result=d_new LabelNode( t,datas->size() ); + result=new LabelNode( t,datas->size() ); } break; default: @@ -387,23 +387,23 @@ VarNode *Parser::parseVar( const string &ident,const string &tag ){ a_ptr exprs( parseExprSeq() ); if( toker->curr()!=')' ) exp( "')'" ); toker->next(); - var=d_new ArrayVarNode( ident,tag,exprs.release() ); - }else var=d_new IdentVarNode( ident,tag ); + var=new ArrayVarNode( ident,tag,exprs.release() ); + }else var=new IdentVarNode( ident,tag ); for(;;){ if( toker->curr()=='\\' ){ toker->next(); string ident=parseIdent(); string tag=parseTypeTag(); - ExprNode *expr=d_new VarExprNode( var.release() ); - var=d_new FieldVarNode( expr,ident,tag ); + ExprNode *expr=new VarExprNode( var.release() ); + var=new FieldVarNode( expr,ident,tag ); }else if( toker->curr()=='[' ){ toker->next(); a_ptr exprs( parseExprSeq() ); if( exprs->exprs.size()!=1 || toker->curr()!=']' ) exp( "']'" ); toker->next(); - ExprNode *expr=d_new VarExprNode( var.release() ); - var=d_new VectorVarNode( expr,exprs.release() ); + ExprNode *expr=new VarExprNode( var.release() ); + var=new VectorVarNode( expr,exprs.release() ); }else{ break; } @@ -422,13 +422,13 @@ DeclNode *Parser::parseVarDecl( int kind,bool constant ){ a_ptr exprs( parseExprSeq() ); if( exprs->size()!=1 || toker->curr()!=']' ) exp( "']'" ); toker->next(); - d=d_new VectorDeclNode( ident,tag,exprs.release(),kind ); + d=new VectorDeclNode( ident,tag,exprs.release(),kind ); }else{ ExprNode *expr=0; if( toker->curr()=='=' ){ toker->next();expr=parseExpr( false ); }else if( constant ) ex( "Constants must be initialized" ); - d=d_new VarDeclNode( ident,tag,kind,constant,expr ); + d=new VarDeclNode( ident,tag,kind,constant,expr ); } d->pos=pos;d->file=incfile; return d; @@ -443,7 +443,7 @@ DimNode *Parser::parseArrayDecl(){ if( toker->curr()!=')' ) exp( "')'" ); if( !exprs->size() ) ex( "can't have a 0 dimensional array" ); toker->next(); - DimNode *d=d_new DimNode( ident,tag,exprs.release() ); + DimNode *d=new DimNode( ident,tag,exprs.release() ); arrayDecls[ident]=d; d->pos=pos; return d; @@ -454,7 +454,7 @@ DeclNode *Parser::parseFuncDecl(){ string ident=parseIdent(); string tag=parseTypeTag(); if( toker->curr()!='(' ) exp( "'('" ); - a_ptr params( d_new DeclSeqNode() ); + a_ptr params( new DeclSeqNode() ); if( toker->next()!=')' ){ for(;;){ params->push_back( parseVarDecl( DECL_PARAM,false ) ); @@ -466,9 +466,9 @@ DeclNode *Parser::parseFuncDecl(){ toker->next(); a_ptr stmts( parseStmtSeq( STMTS_BLOCK ) ); if( toker->curr()!=ENDFUNCTION ) exp( "'End Function'" ); - StmtNode *ret=d_new ReturnNode(0);ret->pos=toker->pos(); + StmtNode *ret=new ReturnNode(0);ret->pos=toker->pos(); stmts->push_back( ret );toker->next(); - DeclNode *d=d_new FuncDeclNode( ident,tag,params.release(),stmts.release() ); + DeclNode *d=new FuncDeclNode( ident,tag,params.release(),stmts.release() ); d->pos=pos;d->file=incfile; return d; } @@ -477,7 +477,7 @@ DeclNode *Parser::parseStructDecl(){ int pos=toker->pos(); string ident=parseIdent(); while( toker->curr()=='\n' ) toker->next(); - a_ptr fields( d_new DeclSeqNode() ); + a_ptr fields( new DeclSeqNode() ); while( toker->curr()==FIELD ){ do{ toker->next(); @@ -487,7 +487,7 @@ DeclNode *Parser::parseStructDecl(){ } if( toker->curr()!=ENDTYPE ) exp( "'Field' or 'End Type'" ); toker->next(); - DeclNode *d=d_new StructDeclNode( ident,fields.release() ); + DeclNode *d=new StructDeclNode( ident,fields.release() ); d->pos=pos;d->file=incfile; return d; } @@ -507,7 +507,7 @@ IfNode *Parser::parseIf(){ toker->next(); IfNode *ifnode=parseIf(); ifnode->pos=pos; - elseOpt=d_new StmtSeqNode( incfile ); + elseOpt=new StmtSeqNode( incfile ); elseOpt->push_back( ifnode ); }else if( toker->curr()==ELSE ){ toker->next(); @@ -517,11 +517,11 @@ IfNode *Parser::parseIf(){ if( toker->curr()!=ENDIF ) exp( "'EndIf'" ); }else if( toker->curr()!='\n' ) exp( "end-of-line" ); - return d_new IfNode( expr.release(),stmts.release(),elseOpt.release() ); + return new IfNode( expr.release(),stmts.release(),elseOpt.release() ); } ExprSeqNode *Parser::parseExprSeq(){ - a_ptr exprs( d_new ExprSeqNode() ); + a_ptr exprs( new ExprSeqNode() ); bool opt=true; while( ExprNode *e=parseExpr( opt ) ){ exprs->push_back( e ); @@ -535,7 +535,7 @@ ExprNode *Parser::parseExpr( bool opt ){ if( toker->curr()==NOT ){ toker->next(); ExprNode *expr=parseExpr1( false ); - return d_new RelExprNode( '=',expr,d_new IntConstNode( 0 ) ); + return new RelExprNode( '=',expr,new IntConstNode( 0 ) ); } return parseExpr1( opt ); } @@ -548,7 +548,7 @@ ExprNode *Parser::parseExpr1( bool opt ){ int c=toker->curr(); if( c!=AND && c!=OR && c!=XOR ) return lhs.release(); toker->next();ExprNode *rhs=parseExpr2( false ); - lhs=d_new BinExprNode( c,lhs.release(),rhs ); + lhs=new BinExprNode( c,lhs.release(),rhs ); } } @@ -560,7 +560,7 @@ ExprNode *Parser::parseExpr2( bool opt ){ int c=toker->curr(); if( c!='<' && c!='>' && c!='=' && c!=LE && c!=GE && c!=NE ) return lhs.release(); toker->next();ExprNode *rhs=parseExpr3( false ); - lhs=d_new RelExprNode( c,lhs.release(),rhs ); + lhs=new RelExprNode( c,lhs.release(),rhs ); } } @@ -572,7 +572,7 @@ ExprNode *Parser::parseExpr3( bool opt ){ int c=toker->curr(); if( c!='+' && c!='-' ) return lhs.release(); toker->next();ExprNode *rhs=parseExpr4( false ); - lhs=d_new ArithExprNode( c,lhs.release(),rhs ); + lhs=new ArithExprNode( c,lhs.release(),rhs ); } } @@ -583,7 +583,7 @@ ExprNode *Parser::parseExpr4( bool opt ){ int c=toker->curr(); if( c!=SHL && c!=SHR && c!=SAR ) return lhs.release(); toker->next();ExprNode *rhs=parseExpr5( false ); - lhs=d_new BinExprNode( c,lhs.release(),rhs ); + lhs=new BinExprNode( c,lhs.release(),rhs ); } } @@ -595,7 +595,7 @@ ExprNode *Parser::parseExpr5( bool opt ){ int c=toker->curr(); if( c!='*' && c!='/' && c!=MOD ) return lhs.release(); toker->next();ExprNode *rhs=parseExpr6( false ); - lhs=d_new ArithExprNode( c,lhs.release(),rhs ); + lhs=new ArithExprNode( c,lhs.release(),rhs ); } } @@ -607,7 +607,7 @@ ExprNode *Parser::parseExpr6( bool opt ){ int c=toker->curr(); if( c!='^' ) return lhs.release(); toker->next();ExprNode *rhs=parseUniExpr( false ); - lhs=d_new ArithExprNode( c,lhs.release(),rhs ); + lhs=new ArithExprNode( c,lhs.release(),rhs ); } } @@ -621,46 +621,46 @@ ExprNode *Parser::parseUniExpr( bool opt ){ case BBINT: if( toker->next()=='%' ) toker->next(); result=parseUniExpr( false ); - result=d_new CastNode( result,Type::int_type ); + result=new CastNode( result,Type::int_type ); break; case BBFLOAT: if( toker->next()=='#' ) toker->next(); result=parseUniExpr( false ); - result=d_new CastNode( result,Type::float_type ); + result=new CastNode( result,Type::float_type ); break; case BBSTR: if( toker->next()=='$' ) toker->next(); result=parseUniExpr( false ); - result=d_new CastNode( result,Type::string_type ); + result=new CastNode( result,Type::string_type ); break; case OBJECT: if( toker->next()=='.' ) toker->next(); t=parseIdent(); result=parseUniExpr( false ); - result=d_new ObjectCastNode( result,t ); + result=new ObjectCastNode( result,t ); break; case BBHANDLE: toker->next(); result=parseUniExpr( false ); - result=d_new ObjectHandleNode( result ); + result=new ObjectHandleNode( result ); break; case BEFORE: toker->next(); result=parseUniExpr( false ); - result=d_new BeforeNode( result ); + result=new BeforeNode( result ); break; case AFTER: toker->next(); result=parseUniExpr( false ); - result=d_new AfterNode( result ); + result=new AfterNode( result ); break; case '+':case '-':case '~':case ABS:case SGN: toker->next(); result=parseUniExpr( false ); if( c=='~' ){ - result=d_new BinExprNode( XOR,result,d_new IntConstNode( -1 ) ); + result=new BinExprNode( XOR,result,new IntConstNode( -1 ) ); }else{ - result=d_new UniExprNode( c,result ); + result=new UniExprNode( c,result ); } break; default: @@ -686,53 +686,53 @@ ExprNode *Parser::parsePrimary( bool opt ){ break; case BBNEW: toker->next();t=parseIdent(); - result=d_new NewNode( t ); + result=new NewNode( t ); break; case FIRST: toker->next();t=parseIdent(); - result=d_new FirstNode( t ); + result=new FirstNode( t ); break; case LAST: toker->next();t=parseIdent(); - result=d_new LastNode( t ); + result=new LastNode( t ); break; case BBNULL: - result=d_new NullNode(); + result=new NullNode(); toker->next(); break; case INTCONST: - result=d_new IntConstNode( atoi( toker->text() ) ); + result=new IntConstNode( atoi( toker->text() ) ); toker->next(); break; case FLOATCONST: - result=d_new FloatConstNode( atof( toker->text() ) ); + result=new FloatConstNode( atof( toker->text() ) ); toker->next(); break; case STRINGCONST: t=toker->text(); - result=d_new StringConstNode( t.substr( 1,t.size()-2 ) ); + result=new StringConstNode( t.substr( 1,t.size()-2 ) ); toker->next(); break; case BINCONST: n=0;t=toker->text(); for( k=1;knext(); break; case HEXCONST: n=0;t=toker->text(); for( k=1;knext(); break; case PI: - result=d_new FloatConstNode( 3.1415926535897932384626433832795f ); + result=new FloatConstNode( 3.1415926535897932384626433832795f ); toker->next();break; case BBTRUE: - result=d_new IntConstNode( 1 ); + result=new IntConstNode( 1 ); toker->next();break; case BBFALSE: - result=d_new IntConstNode( 0 ); + result=new IntConstNode( 0 ); toker->next();break; case IDENT: ident=toker->text(); @@ -743,11 +743,11 @@ ExprNode *Parser::parsePrimary( bool opt ){ a_ptr exprs( parseExprSeq() ); if( toker->curr()!=')' ) exp( "')'" ); toker->next(); - result=d_new CallNode( ident,tag,exprs.release() ); + result=new CallNode( ident,tag,exprs.release() ); }else{ //must be a var VarNode *var=parseVar( ident,tag ); - result=d_new VarExprNode( var ); + result=new VarExprNode( var ); } break; default: diff --git a/compiler/prognode.cpp b/compiler/prognode.cpp index 5135ff8..36fb45f 100644 --- a/compiler/prognode.cpp +++ b/compiler/prognode.cpp @@ -11,7 +11,7 @@ Environ *ProgNode::semant( Environ *e ){ StmtSeqNode::reset( stmts->file,file_lab ); - a_ptr env( d_new Environ( genLabel(),Type::int_type,0,e ) ); + a_ptr env( new Environ( genLabel(),Type::int_type,0,e ) ); consts->proto( env->decls,env ); structs->proto( env->typeDecls,env ); @@ -75,7 +75,7 @@ void ProgNode::translate( Codegen *g,const vector &usrfuncs ){ //leave main program g->label( sem_env->funcLabel+"_leave" ); t=deleteVars( sem_env ); - if( g->debug ) t=d_new TNode( IR_SEQ,call( "__bbDebugLeave" ),t ); + if( g->debug ) t=new TNode( IR_SEQ,call( "__bbDebugLeave" ),t ); g->leave( t,0 ); //structs diff --git a/compiler/stmtnode.cpp b/compiler/stmtnode.cpp index dd8d2f1..4d601df 100644 --- a/compiler/stmtnode.cpp +++ b/compiler/stmtnode.cpp @@ -94,7 +94,7 @@ void DimNode::semant(Environ *e) { } else { if (e->level > 0) ex("Array not found in main program"); if (!t) t = Type::int_type; - sem_type = d_new ArrayType(t, exprs->size()); + sem_type = new ArrayType(t, exprs->size()); sem_decl = e->decls->insertDecl(ident, sem_type, DECL_ARRAY); e->types.push_back(sem_type); } @@ -255,7 +255,7 @@ void ExitNode::semant(Environ *e) { } void ExitNode::translate(Codegen *g) { - g->code(d_new TNode(IR_JUMP, 0, 0, sem_brk)); + g->code(new TNode(IR_JUMP, 0, 0, sem_brk)); } ///////////////////// @@ -340,7 +340,7 @@ void ForNode::translate(Codegen *g) { //execute the step part debug(nextPos, g); int op = ty == Type::int_type ? IR_ADD : IR_FADD; - t = d_new TNode(op, var->load(g), stepExpr->translate(g)); + t = new TNode(op, var->load(g), stepExpr->translate(g)); g->code(var->store(g, t)); //test for loop cond @@ -408,13 +408,13 @@ void ReturnNode::semant(Environ *e) { if (e->level > 0) { if (!expr) { if (e->returnType == Type::float_type) { - expr = d_new FloatConstNode(0); + expr = new FloatConstNode(0); } else if (e->returnType == Type::string_type) { - expr = d_new StringConstNode(""); + expr = new StringConstNode(""); } else if (e->returnType->structType()) { - expr = d_new NullNode(); + expr = new NullNode(); } else { - expr = d_new IntConstNode(0); + expr = new IntConstNode(0); } } expr = expr->semant(e); @@ -425,16 +425,16 @@ void ReturnNode::semant(Environ *e) { void ReturnNode::translate(Codegen *g) { if (!expr) { - g->code(d_new TNode(IR_RET, 0, 0)); + g->code(new TNode(IR_RET, 0, 0)); return; } TNode *t = expr->translate(g); if (expr->sem_type == Type::float_type) { - g->code(d_new TNode(IR_FRETURN, t, 0, returnLabel)); + g->code(new TNode(IR_FRETURN, t, 0, returnLabel)); } else { - g->code(d_new TNode(IR_RETURN, t, 0, returnLabel)); + g->code(new TNode(IR_RETURN, t, 0, returnLabel)); } } @@ -494,7 +494,7 @@ void SelectNode::semant(Environ *e) { //we need a temp var Decl *d = e->decls->insertDecl(genLabel(), expr->sem_type, DECL_LOCAL); - sem_temp = d_new DeclVarNode(d); + sem_temp = new DeclVarNode(d); for (int k = 0; k < cases.size(); ++k) { CaseNode *c = cases[k]; diff --git a/gxruntime/gxaudio.cpp b/gxruntime/gxaudio.cpp index d8ea3cd..b8f9983 100644 --- a/gxruntime/gxaudio.cpp +++ b/gxruntime/gxaudio.cpp @@ -149,7 +149,7 @@ static gxChannel *allocSoundChannel( int n ){ for( int k=0;kisPlaying() ){ chan=0; @@ -162,7 +162,7 @@ static gxChannel *allocSoundChannel( int n ){ next_chan=soundChannels.size(); soundChannels.resize(soundChannels.size()*2); for( int k=next_chan;kcm_mask) { - i2->cm_mask = d_new unsigned[i2->cm_pitch*i2->clip_rect.bottom]; + i2->cm_mask = new unsigned[i2->cm_pitch*i2->clip_rect.bottom]; i2->updateBitMask(i2->clip_rect); } @@ -616,7 +616,7 @@ bool gxCanvas::rect_collide(int x1, int y1, int x2, int y2, int w2, int h2, bool ir.bottom = r1.bottom < r2.bottom ? r1.bottom : r2.bottom; if (!cm_mask) { - cm_mask = d_new unsigned[cm_pitch*clip_rect.bottom]; + cm_mask = new unsigned[cm_pitch*clip_rect.bottom]; updateBitMask(clip_rect); } diff --git a/gxruntime/gxfilesystem.cpp b/gxruntime/gxfilesystem.cpp index 406344c..0eaf580 100644 --- a/gxruntime/gxfilesystem.cpp +++ b/gxruntime/gxfilesystem.cpp @@ -68,7 +68,7 @@ gxDir *gxFileSystem::openDir( const std::string &name,int flags ){ WIN32_FIND_DATA f; HANDLE h=FindFirstFile( t.c_str(),&f ); if( h!=INVALID_HANDLE_VALUE ){ - gxDir *d=d_new gxDir( h,f ); + gxDir *d=new gxDir( h,f ); dir_set.insert( d ); return d; } diff --git a/gxruntime/gxgraphics.cpp b/gxruntime/gxgraphics.cpp index c51a417..320547d 100644 --- a/gxruntime/gxgraphics.cpp +++ b/gxruntime/gxgraphics.cpp @@ -10,8 +10,8 @@ gxGraphics::gxGraphics(gxRuntime *rt, IDirectDraw7 *dd, IDirectDrawSurface7 *fs, dirDraw->QueryInterface(IID_IDirectDraw, (void**)&ds_dirDraw); - front_canvas = d_new gxCanvas(this, fs, 0); - back_canvas = d_new gxCanvas(this, bs, 0); + front_canvas = new gxCanvas(this, fs, 0); + back_canvas = new gxCanvas(this, bs, 0); front_canvas->cls(); back_canvas->cls(); @@ -170,7 +170,7 @@ gxMovie *gxGraphics::openMovie(const string &file, int flags) { delete path; if (n == S_OK) { - gxMovie *movie = d_new gxMovie(this, iam_stream); + gxMovie *movie = new gxMovie(this, iam_stream); movie_set.insert(movie); return movie; } @@ -192,7 +192,7 @@ void gxGraphics::closeMovie(gxMovie *m) { gxCanvas *gxGraphics::createCanvas(int w, int h, int flags) { ddSurf *s = ddUtil::createSurface(w, h, flags, this); if (!s) return 0; - gxCanvas *c = d_new gxCanvas(this, s, flags); + gxCanvas *c = new gxCanvas(this, s, flags); canvas_set.insert(c); c->cls(); return c; @@ -201,7 +201,7 @@ gxCanvas *gxGraphics::createCanvas(int w, int h, int flags) { gxCanvas *gxGraphics::loadCanvas(const string &f, int flags) { ddSurf *s = ddUtil::loadSurface(f, flags, this); if (!s) return 0; - gxCanvas *c = d_new gxCanvas(this, s, flags); + gxCanvas *c = new gxCanvas(this, s, flags); canvas_set.insert(c); return c; } @@ -275,9 +275,9 @@ gxFont *gxGraphics::loadFont(const string &f, int height, int flags) { int first = tm.tmFirstChar, last = tm.tmLastChar; int sz = last - first + 1; - int *offs = d_new int[sz]; - int *widths = d_new int[sz]; - int *as = d_new int[sz]; + int *offs = new int[sz]; + int *widths = new int[sz]; + int *as = new int[sz]; //calc size of canvas to hold font. int x = 0, y = 0, max_x = 0; @@ -333,7 +333,7 @@ gxFont *gxGraphics::loadFont(const string &f, int height, int flags) { delete[] as; c->backup(); - gxFont *font = d_new gxFont(this, c, tm.tmMaxCharWidth, height, first, last + 1, tm.tmDefaultChar, offs, widths); + gxFont *font = new gxFont(this, c, tm.tmMaxCharWidth, height, first, last + 1, tm.tmDefaultChar, offs, widths); font_set.insert(font); //restore font smoothing @@ -545,7 +545,7 @@ gxScene *gxGraphics::createScene(int flags) { string ts = "ZBuffer Bit Depth:" + itoa(zbuffFmt.dwZBufferBitDepth); gx_runtime->debugLog(ts.c_str()); #endif - gxScene *scene = d_new gxScene(this, back_canvas); + gxScene *scene = new gxScene(this, back_canvas); scene_set.insert(scene); dummy_mesh = createMesh(8, 12, 0); @@ -596,8 +596,8 @@ gxMesh *gxGraphics::createMesh(int max_verts, int max_tris, int flags) { IDirect3DVertexBuffer7 *buff; if (dir3d->CreateVertexBuffer(&desc, &buff, 0) < 0) return 0; - WORD *indices = d_new WORD[max_tris * 3]; - gxMesh *mesh = d_new gxMesh(this, buff, indices, max_verts, max_tris); + WORD *indices = new WORD[max_tris * 3]; + gxMesh *mesh = new gxMesh(this, buff, indices, max_verts, max_tris); mesh_set.insert(mesh); return mesh; } diff --git a/gxruntime/gxinput.cpp b/gxruntime/gxinput.cpp index 51b7514..219a349 100644 --- a/gxruntime/gxinput.cpp +++ b/gxruntime/gxinput.cpp @@ -145,14 +145,14 @@ static Keyboard *createKeyboard(gxInput *input) { dword.diph.dwHow = DIPH_DEVICE; dword.dwData = 32; if (dev->SetProperty(DIPROP_BUFFERSIZE, &dword.diph) >= 0) { - return d_new Keyboard(input, dev); + return new Keyboard(input, dev); } else { // input->runtime->debugInfo( "keyboard: SetProperty failed" ); } } else { // input->runtime->debugInfo( "keyboard: SetDataFormat failed" ); } - return d_new Keyboard(input, dev); + return new Keyboard(input, dev); } else { input->runtime->debugInfo("keyboard: SetCooperativeLevel failed"); @@ -170,11 +170,11 @@ static Mouse *createMouse(gxInput *input) { if (dev->SetCooperativeLevel(input->runtime->hwnd, DISCL_FOREGROUND | DISCL_EXCLUSIVE) >= 0) { if (dev->SetDataFormat(&c_dfDIMouse) >= 0) { - return d_new Mouse(input, dev); + return new Mouse(input, dev); } else { // input->runtime->debugInfo( "mouse: SetDataFormat failed" ); } - return d_new Mouse(input, dev); + return new Mouse(input, dev); } else { input->runtime->debugInfo("mouse: SetCooperativeLevel failed"); @@ -192,7 +192,7 @@ static Joystick *createJoystick(gxInput *input, LPCDIDEVICEINSTANCE devinst) { if (dev->SetCooperativeLevel(input->runtime->hwnd, DISCL_FOREGROUND | DISCL_EXCLUSIVE) >= 0) { if (dev->SetDataFormat(&c_dfDIJoystick) >= 0) { int t = ((devinst->dwDevType >> 8) & 0xff) == DI8DEVCLASS_GAMECTRL ? 1 : 2; - return d_new Joystick(input, dev, t); + return new Joystick(input, dev, t); } } dev->Release(); diff --git a/gxruntime/gxmesh.cpp b/gxruntime/gxmesh.cpp index 587a74a..e7e4884 100644 --- a/gxruntime/gxmesh.cpp +++ b/gxruntime/gxmesh.cpp @@ -77,7 +77,7 @@ void gxMesh::backup(){ dxVertex *verts; if( vertex_buff->Lock( DDLOCK_READONLY|DDLOCK_WAIT,(void**)&verts,0 )>=0 ){ - backup_verts=d_new dxVertex[ max_verts ]; + backup_verts=new dxVertex[ max_verts ]; memcpy( backup_verts,verts,sizeof(dxVertex)*max_verts ); vertex_buff->Unlock(); } diff --git a/gxruntime/gxruntime.cpp b/gxruntime/gxruntime.cpp index 6e4b5cc..710c171 100644 --- a/gxruntime/gxruntime.cpp +++ b/gxruntime/gxruntime.cpp @@ -95,7 +95,7 @@ gxRuntime *gxRuntime::openRuntime(HINSTANCE hinst, const string &cmd_line, Debug UpdateWindow(hwnd); - runtime = d_new gxRuntime(hinst, cmd_line, hwnd); + runtime = new gxRuntime(hinst, cmd_line, hwnd); return runtime; } @@ -676,7 +676,7 @@ gxAudio *gxRuntime::openAudio(int flags) { return 0; } - audio = d_new gxAudio(this); + audio = new gxAudio(this); return audio; } @@ -694,7 +694,7 @@ gxInput *gxRuntime::openInput(int flags) { LPDIRECTINPUT8 di; if (DirectInput8Create(hinst, DIRECTINPUT_VERSION, IID_IDirectInput8, (void**)&di, NULL) >= 0) { //if (DirectInput8Create(hinst, DIRECTINPUT_VERSION, (void**)&di, NULL) >= 0) { - input = d_new gxInput(this, di); + input = new gxInput(this, di); acquireInput(); } else { debugInfo("Create DirectInput failed"); @@ -807,7 +807,7 @@ gxGraphics *gxRuntime::openWindowedGraphics(int w, int h, int d, bool d3d) { primSurf = ps; mod_cnt = 0; fs->AddRef(); - return d_new gxGraphics(this, dd, fs, fs, d3d); + return new gxGraphics(this, dd, fs, fs, d3d); } fs->Release(); } @@ -846,7 +846,7 @@ gxGraphics *gxRuntime::openExclusiveGraphics(int w, int h, int d, bool d3d) { DDSCAPS2 caps = { sizeof caps }; caps.dwCaps = DDSCAPS_BACKBUFFER; if (ps->GetAttachedSurface(&caps, &bs) >= 0) { - return d_new gxGraphics(this, dd, ps, bs, d3d); + return new gxGraphics(this, dd, ps, bs, d3d); } ps->Release(); } @@ -960,7 +960,7 @@ bool gxRuntime::graphicsLost() { gxFileSystem *gxRuntime::openFileSystem(int flags) { if (fileSystem) return 0; - fileSystem = d_new gxFileSystem(); + fileSystem = new gxFileSystem(); return fileSystem; } @@ -977,7 +977,7 @@ void gxRuntime::closeFileSystem(gxFileSystem *f) { static HRESULT WINAPI enumMode(DDSURFACEDESC2 *desc, void *context) { int dp = desc->ddpfPixelFormat.dwRGBBitCount; if (dp == 16 || dp == 24 || dp == 32) { - gxRuntime::GfxMode *m = d_new gxRuntime::GfxMode; + gxRuntime::GfxMode *m = new gxRuntime::GfxMode; m->desc = *desc; gxRuntime::GfxDriver *d = (gxRuntime::GfxDriver*)context; d->modes.push_back(m); @@ -1009,9 +1009,9 @@ static BOOL WINAPI enumDriver(GUID FAR *guid, LPSTR desc, LPSTR name, LPVOID con dd->GetDisplayMode(&desktop_desc); } - gxRuntime::GfxDriver *d = d_new gxRuntime::GfxDriver; + gxRuntime::GfxDriver *d = new gxRuntime::GfxDriver; - d->guid = guid ? d_new GUID(*guid) : 0; + d->guid = guid ? new GUID(*guid) : 0; d->name = desc;//string( name )+" "+string( desc ); memset(&d->d3d_desc, 0, sizeof(d->d3d_desc)); @@ -1097,7 +1097,7 @@ void gxRuntime::windowedModeInfo(int *c) { } gxTimer *gxRuntime::createTimer(int hertz) { - gxTimer *t = d_new gxTimer(this, hertz); + gxTimer *t = new gxTimer(this, hertz); timers.insert(t); return t; } @@ -1164,7 +1164,7 @@ int gxRuntime::callDll(const std::string &dll, const std::string &func, const vo if (lib_it == libs.end()) { HINSTANCE h = LoadLibrary(dll.c_str()); if (!h) return 0; - gxDll *t = d_new gxDll; + gxDll *t = new gxDll; t->hinst = h; lib_it = libs.insert(make_pair(dll, t)).first; } diff --git a/gxruntime/gxscene.cpp b/gxruntime/gxscene.cpp index 29e7f72..f48b919 100644 --- a/gxruntime/gxscene.cpp +++ b/gxruntime/gxscene.cpp @@ -605,7 +605,7 @@ void gxScene::end(){ } gxLight *gxScene::createLight( int flags ){ - gxLight *l=d_new gxLight( this,flags ); + gxLight *l=new gxLight( this,flags ); _allLights.insert(l); return l; } diff --git a/stdutil/stdutil.cpp b/stdutil/stdutil.cpp index f23d152..45f73fb 100644 --- a/stdutil/stdutil.cpp +++ b/stdutil/stdutil.cpp @@ -46,7 +46,7 @@ static void check(Mem *m) { MessageBox(GetDesktopWindow(), "mem_check: pre_tag!='DNEW'", "Memory error", MB_OK | MB_ICONWARNING); if (m->tag == 'NDWE') { string t = "Probable double delete"; - t += "- d_new file: " + string(m->file) + " line:" + itoa(m->line); + t += "- new file: " + string(m->file) + " line:" + itoa(m->line); MessageBox(GetDesktopWindow(), t.c_str(), "Memory error", MB_OK | MB_ICONWARNING); } ExitProcess(0); @@ -54,7 +54,7 @@ static void check(Mem *m) { int *t = (int*)((char*)(m + 1) + m->size); if (*t != 'dnew') { MessageBox(GetDesktopWindow(), "mem_check: post_tag!='dnew'", "Memory error", MB_OK | MB_ICONWARNING); - string t = "Probable memory overwrite - d_new file: " + string(m->file) + " line:" + itoa(m->line); + string t = "Probable memory overwrite - new file: " + string(m->file) + " line:" + itoa(m->line); MessageBox(GetDesktopWindow(), t.c_str(), "Memory error", MB_OK | MB_ICONWARNING); ExitProcess(0); } @@ -317,7 +317,7 @@ string filenamefile(const string &t) { const int MIN_SIZE = 256; qstreambuf::qstreambuf() { - buf = d_new char[MIN_SIZE]; + buf = new char[MIN_SIZE]; setg(buf, buf, buf); setp(buf, buf, buf + MIN_SIZE); } @@ -349,7 +349,7 @@ qstreambuf::int_type qstreambuf::overflow(qstreambuf::int_type c) { if (pptr() == epptr()) { int sz = size(); int n_sz = sz * 2; if (n_sz < MIN_SIZE) n_sz = MIN_SIZE; - char *n_buf = d_new char[n_sz]; + char *n_buf = new char[n_sz]; memcpy(n_buf, gptr(), sz); delete buf; buf = n_buf; setg(buf, buf, buf + sz); diff --git a/stdutil/stdutil.h b/stdutil/stdutil.h index b5d94d1..548208a 100644 --- a/stdutil/stdutil.h +++ b/stdutil/stdutil.h @@ -9,24 +9,6 @@ #include #include -#ifdef MEMDEBUG - -void * _cdecl operator new( size_t size ); -void * _cdecl operator new[]( size_t size ); -void * _cdecl operator new( size_t size,const char *file,int line ); -void * _cdecl operator new[]( size_t size,const char *file,int line ); -void _cdecl operator delete( void *q ); -void _cdecl operator delete[]( void *q ); -void _cdecl operator delete( void *q,const char *file,int line ); -void _cdecl operator delete[]( void *q,const char *file,int line ); -#define d_new new( __FILE__,__LINE__ ) - -#else - -#define d_new new - -#endif - void trackmem( bool enable ); void checkmem( std::ostream &out ); @@ -87,9 +69,9 @@ public: pool():free(0){} pointer allocate( size_type n,const void *){ clog<<"Allocating "<1 ) return d_new T[n]; + if( n>1 ) return new T[n]; if( !free ){ - free=(T*)d_new char[sizeof(T)*N]; + free=(T*)new char[sizeof(T)*N]; for( int k=0;k