static void fnameFini( // FINISH FNAME PROCESSING INITFINI* defn ) // - definition { /* unused parameters */ (void)defn; RingFree( &fnameList ); }
void DwioBuffFini( // BUFFERING COMPLETION void ) { if( NULL != beingWritten ) { CMemFreePtr( &beingWritten ); } RingFree( &freeBufs ); }
pch_status PCHReadSegments( void ) { char *src_suffix; char *dest_suffix; char *class_name; size_t class_name_len; size_t suffix_len; size_t len; size_t old_module_len; size_t curr_module_len; size_t extra; fe_seg_id sib_id; PC_SEGMENT *curr; curr_module_len = strlen( ModuleName ); old_module_len = PCHReadUInt(); extra = 0; if( curr_module_len > old_module_len ) { extra = curr_module_len - old_module_len; } PCHRead( &seg_max, sizeof( seg_max ) ); PCHRead( &dgroup_size, sizeof( dgroup_size ) ); RingFree( &seg_list ); for(;;) { len = PCHReadUInt(); if( len == 0 ) break; curr = CMemAlloc( len + extra ); PCHRead( curr, len ); if( curr->module_prefix ) { if( old_module_len != curr_module_len ) { suffix_len = len; suffix_len -= sizeof( PC_SEGMENT ) - sizeof( char ); suffix_len -= old_module_len; src_suffix = &(curr->name[old_module_len]); dest_suffix = &(curr->name[curr_module_len]); memmove( dest_suffix, src_suffix, suffix_len ); } memcpy( curr->name, ModuleName, curr_module_len ); } curr->label = SymbolMapIndex( curr->label ); class_name_len = (size_t) curr->class_name; if( class_name_len != 0 ) { class_name = CPermAlloc( class_name_len ); PCHRead( class_name, class_name_len ); } else { class_name = NULL; } curr->class_name = class_name; RingAppend( &seg_list, curr ); } RingIterBeg( seg_list, curr ) { sib_id = (fe_seg_id) curr->sibling; if( sib_id != curr->seg_id ) { curr->sibling = segIdLookup( sib_id ); } else { curr->sibling = curr; } }
static void readExtrefs( void ) { SYMBOL sym; unsigned len; PRAG_EXT_REF *entry; RingFree( &pragmaExtrefs ); while( (sym = SymbolPCHRead()) != NULL ) { entry = RingAlloc( &pragmaExtrefs, offsetof( PRAG_EXT_REF, name ) + 1 ); entry->symbol = sym; entry->name[0] = '\0'; } while( (len = PCHReadUInt()) != 0 ) { entry = RingAlloc( &pragmaExtrefs, offsetof( PRAG_EXT_REF, name ) + len + 1 ); PCHRead( entry->name, len + 1 ); entry->symbol = NULL; } }
static void fini( // FINALIZATION INITFINI* defn ) // - definition { defn = defn; RingFree( &scopes ); }
void SegmentFini( // SEGMENT: COMPLETION void ) { RingFree( &seg_list ); }
void FiniStringTable( stringtable *strtab ) /************************************************/ { RingFree( &strtab->data ); }
static void fini // MODULE COMPLETION ( INITFINI* defn ) { defn = defn; RingFree( &pragmaExtrefs ); }
void CgInfoFreeLibs( void ) /*************************/ { RingFree( &libRing ); }
static void macroStorageFree( MACRO_SEG_LIST **seglist, MEPTR **hashtab ) { CMemFreePtr( hashtab ); RingFree( seglist ); }