diff options
Diffstat (limited to 'src/analysis/blocks/virtual.c')
-rw-r--r-- | src/analysis/blocks/virtual.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/analysis/blocks/virtual.c b/src/analysis/blocks/virtual.c index 946445c..a3e1695 100644 --- a/src/analysis/blocks/virtual.c +++ b/src/analysis/blocks/virtual.c @@ -27,6 +27,7 @@ #include <malloc.h> +#include "flow.h" #include "../block-int.h" @@ -71,7 +72,7 @@ static void g_virtual_block_dispose(GVirtualBlock *); static void g_virtual_block_finalize(GVirtualBlock *); /* Recherche le bloc contenant une adresse donnée. */ -static GInstrBlock *g_virtual_block_find_by_addr(const GVirtualBlock *, vmpa_t, bool); +static GInstrBlock *g_virtual_block_find_by_addr(const GVirtualBlock *, const vmpa2t *, bool); /* Parcourt le bloc d'instructions dans un ordre donné. */ static bool g_virtual_block_visit(GVirtualBlock *, instr_block_visitor_cb, void *); @@ -225,7 +226,7 @@ GInstrBlock *g_virtual_block_new(void) * * ******************************************************************************/ -static GInstrBlock *g_virtual_block_find_by_addr(const GVirtualBlock *block, vmpa_t addr, bool final) +static GInstrBlock *g_virtual_block_find_by_addr(const GVirtualBlock *block, const vmpa2t *addr, bool final) { GInstrBlock *result; /* Resultat à retourner */ size_t i; /* Boucle de parcours */ @@ -240,7 +241,7 @@ static GInstrBlock *g_virtual_block_find_by_addr(const GVirtualBlock *block, vmp if (ret != NULL) { if (final) result = ret; - else result = block->children[i]; + else result = (G_IS_FLOW_BLOCK(ret) ? G_INSTR_BLOCK(block) : ret); } } |