summaryrefslogtreecommitdiff
path: root/plugins/androhelpers/switch.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/androhelpers/switch.c')
-rw-r--r--plugins/androhelpers/switch.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/plugins/androhelpers/switch.c b/plugins/androhelpers/switch.c
index 2ef6277..57e3830 100644
--- a/plugins/androhelpers/switch.c
+++ b/plugins/androhelpers/switch.c
@@ -333,6 +333,7 @@ static void mark_all_switch_cases(const GArchInstruction *instr, const dex_switc
static void look_for_switch_instructions(const GDexMethod *method, GArchInstruction *instrs, const GLoadedBinary *binary, const GDexFormat *format, bool link)
{
GBinRoutine *routine; /* Abstraction de la méthode */
+ const mrange_t *range; /* Emplacement du symbole */
vmpa_t start; /* Début de la zone couverte */
vmpa_t end; /* Fin de la zone couverte */
GArchInstruction *iter; /* Boucle de parcours */
@@ -340,9 +341,10 @@ static void look_for_switch_instructions(const GDexMethod *method, GArchInstruct
dex_switch dswitch; /* Infos d'aiguillage */
routine = g_dex_method_get_routine(method);
+ range = g_binary_symbol_get_range(G_BIN_SYMBOL(routine));
- start = g_binary_routine_get_address(routine);
- end = start + g_binary_routine_get_size(routine);
+ start = get_mrange_addr(range)->virtual;
+ end = start + get_mrange_length(range);
g_object_unref(G_OBJECT(routine));