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 ); }
static void FuncSetMod( a_window *wnd, mod_handle mod ) { func_window *func = WndFunc( wnd ); func->mod = mod; NameListAddModules( NameList( func ), mod, func->d2_only, TRUE ); CalcIndent( wnd ); }
static void GlobInit( a_window *wnd ) { glob_window *glob = WndGlob( wnd ); WndScrollAbs( wnd, 0 ); NameListFree( NameList( glob ) ); WndZapped( wnd ); NameListAddModules( NameList( glob ), glob->mod, glob->d2_only, TRUE ); WndSetKey( wnd, PIECE_NAME ); }