Uh, Updates?

This commit is contained in:
Michael Fabian Dirks
2016-10-03 17:11:15 +02:00
parent aa3cf453e5
commit 581c640149
62 changed files with 469 additions and 489 deletions
+3 -3
View File
@@ -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"
+4 -4
View File
@@ -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:
+11 -11
View File
@@ -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;k<dir->num_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:"<<dat->addr<<" size:"<<dat->size<<endl;
int sz=dat->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;k<head->num_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;
+2 -2
View File
@@ -44,7 +44,7 @@ private:
data_sz=data_sz/2+data_sz;
if( data_sz<pc+n ) data_sz=pc+n;
char *old_data=data;
data=d_new char[data_sz];
data=new char[data_sz];
memcpy( data,old_data,pc );
delete old_data;
}
@@ -138,7 +138,7 @@ bool Linker::canCreateExe(){
}
Module *Linker::createModule(){
return d_new BBModule();
return new BBModule();
}
void Linker::deleteModule( Module *mod ){
+12 -12
View File
@@ -40,7 +40,7 @@ static BBType _bbCStrType(BBTYPE_CSTR);
static void *bbMalloc(int size) {
return malloc(size);
/*
char *c=d_new char[ size ];
char *c=new char[ size ];
memBlks.push_back( c );
return c;
*/
@@ -121,7 +121,7 @@ BBStr::~BBStr() {
}
BBStr *_bbStrLoad(BBStr **var) {
return *var ? d_new BBStr(**var) : d_new BBStr();
return *var ? new BBStr(**var) : new BBStr();
}
void _bbStrRelease(BBStr *str) {
@@ -147,7 +147,7 @@ int _bbStrToInt(BBStr *s) {
}
BBStr *_bbStrFromInt(int n) {
return d_new BBStr(itoa(n));
return new BBStr(itoa(n));
}
float _bbStrToFloat(BBStr *s) {
@@ -156,11 +156,11 @@ float _bbStrToFloat(BBStr *s) {
}
BBStr *_bbStrFromFloat(float n) {
return d_new BBStr(ftoa(n));
return new BBStr(ftoa(n));
}
BBStr *_bbStrConst(const char *s) {
return d_new BBStr(s);
return new BBStr(s);
}
void * _bbVecAlloc(BBVecType *type) {
@@ -378,13 +378,13 @@ int _bbObjEachNext2(BBObj **var) {
}
BBStr *_bbObjToStr(BBObj *obj) {
if (!obj || !obj->fields) 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;
}
}
+3 -3
View File
@@ -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;
}
+28 -28
View File
@@ -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<<shift)<n ) ++shift;
if( (1<<shift)!=n ) ThrowRuntimeException( "Illegal terrain size" );
Terrain *t=d_new Terrain( shift );
Terrain *t=new Terrain( shift );
return insertEntity( t,p );
}
@@ -1259,7 +1259,7 @@ Entity * bbLoadTerrain( BBStr *file,Entity *p ){
int shift=0;
while( (1<<shift)<w ) ++shift;
if( (1<<shift)!=w ) ThrowRuntimeException( "Illegal terrain size" );
Terrain *t=d_new Terrain( shift );
Terrain *t=new Terrain( shift );
c->lock();
for( int y=0;y<h;++y ){
for( int x=0;x<w;++x ){
@@ -1322,7 +1322,7 @@ Entity * bbCreateListener( Entity *p,float roll,float dopp,float dist ){
debugParent(p);
if( listener ) ThrowRuntimeException( "Listener already created" );
}
listener=d_new Listener( roll,dopp,dist );
listener=new Listener( roll,dopp,dist );
return insertEntity( listener,p );
}
@@ -1478,7 +1478,7 @@ int bbAddAnimSeq( Object *o,int length ){
if( anim ){
anim->addSeq( 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();
+4 -4
View File
@@ -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 ){
+11 -11
View File
@@ -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<gxCanvas*> 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;
}
+3 -3
View File
@@ -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;
}
+5 -5
View File
@@ -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;
}
+4 -4
View File
@@ -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 );
+6 -6
View File
@@ -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(){
+10 -10
View File
@@ -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( "<all>" );
// if( !player ) return new BBStr( "<all>" );
// Player *p=findPlayer( player );
// return d_new BBStr( p ? p->name : "<unknown>" );
// return new BBStr( p ? p->name : "<unknown>" );
//}
//
//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;
+4 -4
View File
@@ -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,"<no connection>","",0 ) );
// connections.push_back( new Connection( GUID_NULL,"<no connection>","",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 );
+8 -8
View File
@@ -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();
+3 -3
View File
@@ -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;
}
+3 -3
View File
@@ -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 );
}
-2
View File
@@ -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:
+1 -1
View File
@@ -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
+4 -4
View File
@@ -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:
+6 -6
View File
@@ -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 );
+3 -3
View File
@@ -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();
+2 -2
View File
@@ -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 );
+1 -1
View File
@@ -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
+2 -2
View File
@@ -111,7 +111,7 @@ Box MeshCollider::nodeBox( const vector<int> &tris ){
MeshCollider::Node *MeshCollider::createLeaf( const vector<int> &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<int> &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
+2 -2
View File
@@ -31,7 +31,7 @@ static vector<MLMesh*> 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<Brush,Surf*>::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 ) );
}
+3 -3
View File
@@ -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 ),
+1 -1
View File
@@ -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 );
+4 -4
View File
@@ -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;
+1 -1
View File
@@ -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; }
};
+1 -1
View File
@@ -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;
}
+1 -1
View File
@@ -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();
+1 -1
View File
@@ -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
+1 -1
View File
@@ -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 ):
+1 -1
View File
@@ -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 );
+1 -1
View File
@@ -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),
+1 -1
View File
@@ -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 );
+7 -7
View File
@@ -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;
+1 -1
View File
@@ -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 );
+1 -1
View File
@@ -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(){
+3 -3
View File
@@ -139,8 +139,8 @@ TerrainRep::TerrainRep( int n ):
cell_shift(n),cell_size(1<<n),cell_mask((1<<n)-1),
end_tri_id( (1<<n)*(1<<n)*2 ),
shading(false),mesh(0),detail(0),morph(true){
cells=d_new Cell[cell_size*cell_size];
errors=d_new Error[end_tri_id];
cells=new Cell[cell_size*cell_size];
errors=new Error[end_tri_id];
setDetail( 2000,false );
clear();
}
@@ -279,7 +279,7 @@ void TerrainRep::split( Tri *t ){
if( tv>=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;
}
+3 -3
View File
@@ -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) :
+45 -45
View File
@@ -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<<EDX;
return q;
}
@@ -151,11 +151,11 @@ Tile *Codegen_x86::munchArith( TNode *t ){
int shift;
if( t->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;
}
+1 -1
View File
@@ -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();
}
+10 -10
View File
@@ -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<DeclSeq> decls(d_new DeclSeq());
a_ptr<DeclSeq> 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");
}
+4 -4
View File
@@ -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;
}
+65 -65
View File
@@ -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);
}
/////////////////
+31 -31
View File
@@ -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;k<e->decls->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 );
}
+78 -78
View File
@@ -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<StmtSeqNode> stmts( d_new StmtSeqNode( incfile ) );
a_ptr<StmtSeqNode> stmts( new StmtSeqNode( incfile ) );
parseStmtSeq( stmts,scope );
return stmts.release();
}
@@ -116,7 +116,7 @@ void Parser::parseStmtSeq( StmtSeqNode *stmts,int scope ){
a_ptr<StmtSeqNode> 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<VarNode> 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<SelectNode> selNode( d_new SelectNode( expr ) );
a_ptr<SelectNode> 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<ExprSeqNode> exprs( parseExprSeq() );
if( !exprs->size() ) exp( "expression sequence" );
a_ptr<StmtSeqNode> 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<ExprNode> 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<ExprNode> 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<ExprSeqNode> 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<ExprSeqNode> 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<ExprSeqNode> 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<DeclSeqNode> params( d_new DeclSeqNode() );
a_ptr<DeclSeqNode> 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<StmtSeqNode> 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<DeclSeqNode> fields( d_new DeclSeqNode() );
a_ptr<DeclSeqNode> 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<ExprSeqNode> exprs( d_new ExprSeqNode() );
a_ptr<ExprSeqNode> 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;k<t.size();++k ) n=(n<<1)|(t[k]=='1');
result=d_new IntConstNode( n );
result=new IntConstNode( n );
toker->next();
break;
case HEXCONST:
n=0;t=toker->text();
for( k=1;k<t.size();++k ) n=(n<<4)|( isdigit(t[k]) ? t[k]&0xf : (t[k]&7)+9 );
result=d_new IntConstNode( n );
result=new IntConstNode( n );
toker->next();
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<ExprSeqNode> 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:
+2 -2
View File
@@ -11,7 +11,7 @@ Environ *ProgNode::semant( Environ *e ){
StmtSeqNode::reset( stmts->file,file_lab );
a_ptr<Environ> env( d_new Environ( genLabel(),Type::int_type,0,e ) );
a_ptr<Environ> 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<UserFunc> &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
+11 -11
View File
@@ -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];
+6 -6
View File
@@ -149,7 +149,7 @@ static gxChannel *allocSoundChannel( int n ){
for( int k=0;k<soundChannels.size();++k ){
chan=soundChannels[next_chan];
if( !chan ){
chan=soundChannels[next_chan]=d_new SoundChannel();
chan=soundChannels[next_chan]=new SoundChannel();
channels.push_back(chan);
}else if( chan->isPlaying() ){
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;k<soundChannels.size();++k ) soundChannels[k]=0;
chan=soundChannels[next_chan++]=d_new SoundChannel();
chan=soundChannels[next_chan++]=new SoundChannel();
channels.push_back( chan );
}
@@ -176,7 +176,7 @@ runtime(r){
soundChannels.resize( 4096 );
for( int k=0;k<4096;++k ) soundChannels[k]=0;
cdChannel=d_new CDChannel();
cdChannel=new CDChannel();
channels.push_back( cdChannel );
}
@@ -219,7 +219,7 @@ gxSound *gxAudio::loadSound( const string &f,bool use3d ){
FSOUND_SAMPLE *sample=FSOUND_Sample_Load( FSOUND_FREE,f.c_str(),flags,0,0 );
if( !sample ) return 0;
gxSound *sound=d_new gxSound( this,sample );
gxSound *sound=new gxSound( this,sample );
sound_set.insert( sound );
return sound;
}
@@ -268,11 +268,11 @@ gxChannel *gxAudio::playFile( const string &t,bool use_3d ){
f.find( ".asf" )!=string::npos ){
FSOUND_STREAM *stream=FSOUND_Stream_Open( f.c_str(),use_3d,0,0 );
if( !stream ) return 0;
chan=d_new StreamChannel( stream );
chan=new StreamChannel( stream );
}else{
FMUSIC_MODULE *module=FMUSIC_LoadSong( f.c_str() );
if( !module ) return 0;
chan=d_new MusicChannel( module );
chan=new MusicChannel( module );
}
channels.push_back( chan );
songs[f]=chan;
+3 -3
View File
@@ -528,11 +528,11 @@ bool gxCanvas::collide(int x1, int y1, const gxCanvas *i2, int x2, int y2, bool
if (solid) return true;
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);
}
if (!i2->cm_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);
}
+1 -1
View File
@@ -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;
}
+12 -12
View File
@@ -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;
}
+5 -5
View File
@@ -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();
+1 -1
View File
@@ -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();
}
+11 -11
View File
@@ -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;
}
+1 -1
View File
@@ -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;
}
+4 -4
View File
@@ -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);
+2 -20
View File
@@ -9,24 +9,6 @@
#include <string>
#include <iostream>
#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 "<<n<<endl;
if( n>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<N-1;++k ) *(T**)(free+k)=free+k+1;
*(T**)(free+N-1)=0;
}