summaryrefslogtreecommitdiff
path: root/src/gui/panels
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2017-12-08 20:50:56 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2017-12-08 20:50:56 (GMT)
commit39116dce7d40dab310e929f92fdbfc865b5fac20 (patch)
treea0b8dc11070f8a68de6b6f7bbc84b3d4ccf25afd /src/gui/panels
parentcf11fcf862b98ef57935bcfccd6f2f6ae3f925f6 (diff)
Introduced the symbol visibility.
Diffstat (limited to 'src/gui/panels')
-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;