static void CleanAltDefs( symbol *sym ) /*************************************/ { symbol * testring; symbol * altsym; if( IS_SYM_ALIAS( sym ) || sym->info & SYM_DEAD || sym->u.altdefs == NULL ) return; testring = NULL; while( (altsym = RingPop( &sym->u.altdefs)) != NULL ) { if( altsym->info & SYM_KILL ) { if( altsym->info & SYM_HAS_DATA ) { altsym->u.datasym = NULL; RingAppend( &testring, altsym ); } } else if( !(altsym->info & SYM_HAS_DATA) ) { RingLookup( testring, SetNewDataSym, altsym ); } } }
static void dwioBuffReleaseMemory( // RELEASE MEMORY void ) { DWIOBUFF *buf; // - current buffer for(;;) { buf = RingPop( &freeBufs ); if( buf == NULL ) break; if( ! buf->written && ! CompFlags.compile_failed ) { savePrevNext( buf ); beingWritten = buf; IoSuppTempWrite( buf->disk_addr , TMPBLOCK_BSIZE * DWBLOCK_FACTOR , buf->data ); beingWritten = NULL; } CMemFree( buf ); } }