void ActionFini( cmdline_t *cmd ) { /*******************************/ act_grp_t *cur; act_grp_t *next; size_t file_num; size_t num_files; /**/myassert( cmd != NULL && cmd->action != NULL ); cur = cmd->action; switch( cur->dbg_parser ) { case PARSE_NULL: break; case PARSE_WATCOM: Wat2CanFini(); break; case PARSE_WATCOM_70: Wat2CanFini(); break; default: /**/ never_reach(); } if( cur->deflib ) { DefLibFini(); } switch( cur->dbg_generator ) { case DGEN_NULL: break; case DGEN_TXT: Can2TxtFini(); break; case DGEN_MICROSOFT: Can2MsFini(); break; case DGEN_METAWARE: Can2MsFini(); break; case DGEN_TURBO: Can2TDFini(); break; default: /**/ never_reach(); } switch( cur->omf_generator ) { case OGEN_NULL: break; case OGEN_MICROSOFT_OS2:GenMSOmfFini(); break; case OGEN_MICROSOFT: GenMSOmfFini(); break; case OGEN_PHARLAP: GenPharFini(); break; default: /**/ never_reach(); } if( cur->output != NULL ) { MemFree( cur->output ); } num_files = cur->num_files; for( file_num = 0; file_num < num_files; ++file_num ) { MemFree( cur->files[ file_num ] ); } next = cur->next; MemFree( cur ); cmd->action = next; }
static void main_fini( void ) /***************************/ { free_names(); GenMSOmfFini(); AsmShutDown(); }