summaryrefslogtreecommitdiff
path: root/src/gui/panels/symbols.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/panels/symbols.c')
-rw-r--r--src/gui/panels/symbols.c16
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;