diff options
Diffstat (limited to 'src/gui/panels')
| -rw-r--r-- | src/gui/panels/symbols.c | 16 | 
1 files changed, 13 insertions, 3 deletions
diff --git a/src/gui/panels/symbols.c b/src/gui/panels/symbols.c index 3b01f24..f64f087 100644 --- a/src/gui/panels/symbols.c +++ b/src/gui/panels/symbols.c @@ -1064,15 +1064,25 @@ static void do_filtering_on_symbols(GSymbolsPanel *panel)  static bool is_symbol_matching(GSymbolsPanel *panel, const GBinSymbol *symbol, regmatch_t *match)  {      bool result;                            /* Bilan à retourner           */ +    SymbolStatus status;                    /* Visibilité du symbole obtenu*/      SymbolType type;                        /* Type associé au symbole     */ -    type = g_binary_symbol_get_target_type(symbol); +    status = g_binary_symbol_get_status(symbol); -    if (type != STP_ROUTINE && type != STP_ENTRY_POINT && type != STP_OBJECT) +    if (status == SSS_IMPORTED)          result = false;      else -        result = is_content_matching(panel->filter, g_binary_symbol_get_label(symbol), match); +    { +        type = g_binary_symbol_get_target_type(symbol); + +        if (type != STP_ROUTINE && type != STP_ENTRY_POINT && type != STP_OBJECT) +            result = false; + +        else +            result = is_content_matching(panel->filter, g_binary_symbol_get_label(symbol), match); + +    }      return result;  | 
