void BreakAllModEntries( mod_handle handle ) { name_list list; address addr; int i; bool have_mod_cue; sym_info sinfo; DIPHDL( cue, ch ); DIPHDL( cue, ch_mod ); NameListInit( &list, WF_CODE ); NameListAddModules( &list, handle, false, true ); have_mod_cue = FindFirstCue( handle, ch_mod ); for( i = 0; i < NameListNumRows( &list ); ++i ) { addr = NameListAddr( &list, i ); SymInfo( NameListHandle( &list, i ), NULL, &sinfo ); if( !sinfo.is_global && !sinfo.is_public ) continue; if( have_mod_cue && DeAliasAddrCue( handle, addr, ch ) != SR_NONE ) { if( CueFileId( ch ) != CueFileId( ch_mod ) ) { continue; } } if( FindBreak( addr ) != NULL ) { continue; } AddBreak( addr ); } NameListFree( &list ); }
name_list *SymCompInit( bool code, bool data, bool d2_only, bool dup_ok, mod_handle mod ) { sorted_names *curr; walk_find wf; for( curr = SortedNames; curr != NULL; curr = curr->next ) { if( code != curr->code ) continue; if( data != curr->data ) continue; if( d2_only != curr->d2_only ) continue; if( dup_ok != curr->dup_ok ) continue; if( mod != curr->mod ) continue; return( &curr->list ); } _Alloc( curr, sizeof( *curr ) ); wf = 0; if( code ) wf |= WF_CODE; if( data ) wf |= WF_DATA; NameListInit( &curr->list, wf ); NameListAddModules( &curr->list, mod, d2_only, dup_ok ); curr->next = SortedNames; SortedNames = curr; curr->code = code; curr->data = data; curr->d2_only = d2_only; curr->dup_ok = dup_ok; curr->mod = mod; return( &curr->list ); }
name_list *SymCompInit( bool code, bool data, bool d2_only, bool dup_ok, mod_handle mod ) { void *old; sorted_names *curr; for( curr = SortedNames; curr != NULL; curr = curr->next ) { if( code != curr->code ) continue; if( data != curr->data ) continue; if( d2_only != curr->d2_only ) continue; if( dup_ok != curr->dup_ok ) continue; if( mod != curr->mod ) continue; return( &curr->list ); } old = DUIHourGlass( NULL ); _Alloc( curr, sizeof( *curr ) ); NameListInit( &curr->list, ( code ? WF_CODE : 0 ) + ( data ? WF_DATA : 0 ) ); NameListAddModules( &curr->list, mod, d2_only, dup_ok ); DUIHourGlass( old ); curr->next = SortedNames; SortedNames = curr; curr->code = code; curr->data = data; curr->d2_only = d2_only; curr->dup_ok = dup_ok; curr->mod = mod; return( &curr->list ); }
bool GlobEventProc( a_window * wnd, gui_event gui_ev, void *parm ) { glob_window *glob = WndGlob( wnd ); parm=parm; switch( gui_ev ) { case GUI_INIT_WINDOW: NameListInit( NameList( glob ), WF_DATA ); GlobSetOptions( wnd ); return( TRUE ); case GUI_DESTROY : NameListFree( NameList( glob ) ); WndFree( glob ); return( TRUE ); } return( FALSE ); }
static bool FuncEventProc( a_window * wnd, gui_event gui_ev, void *parm ) { func_window *func = WndFunc( wnd ); parm=parm; switch( gui_ev ) { case GUI_INIT_WINDOW: NameListInit( NameList( func ), WF_CODE ); func->toggled_break = FALSE; FuncSetOptions( wnd ); WndSetKey( wnd, PIECE_NAME ); return( TRUE ); case GUI_RESIZE : CalcIndent( wnd ); WndZapped( wnd ); break; case GUI_DESTROY : NameListFree( NameList( func ) ); WndFree( func ); return( TRUE ); } return( FALSE ); }