diff options
Diffstat (limited to 'src/arch/dalvik/pseudo')
-rw-r--r-- | src/arch/dalvik/pseudo/switch.c | 24 | ||||
-rw-r--r-- | src/arch/dalvik/pseudo/switch.h | 2 |
2 files changed, 13 insertions, 13 deletions
diff --git a/src/arch/dalvik/pseudo/switch.c b/src/arch/dalvik/pseudo/switch.c index fd7e442..70afb3e 100644 --- a/src/arch/dalvik/pseudo/switch.c +++ b/src/arch/dalvik/pseudo/switch.c @@ -39,8 +39,8 @@ struct _GDalvikSwitchInstr uint16_t switch_size; /* Taille du switch considéré */ - uint32_t *keys; /* Table de clefs */ - uint32_t *targets; /* Table des sauts relatifs */ + int32_t *keys; /* Table de clefs */ + int32_t *targets; /* Table des sauts relatifs */ }; @@ -194,9 +194,9 @@ GArchInstruction *g_dalvik_switch_instr_new(uint16_t ident, GDalvikContext *ctx, goto gdsin_bad; if (ident != DPO_PACKED_SWITCH) - consumed = (1 + result->switch_size) * sizeof(uint32_t); + consumed = (1 + result->switch_size) * sizeof(int32_t); else - consumed = (2 * result->switch_size) * sizeof(uint32_t); + consumed = (2 * result->switch_size) * sizeof(int32_t); if (!g_dalvik_context_register_switch_data(ctx, pos, consumed)) goto gdsin_bad; @@ -229,24 +229,24 @@ GArchInstruction *g_dalvik_switch_instr_new(uint16_t ident, GDalvikContext *ctx, static bool g_dalvik_switch_decode_data(GDalvikSwitchInstr *instr, const GBinContent *content, const vmpa2t *pos) { vmpa2t iter; /* Position modifiable */ - uint32_t first_key; /* Première clef */ + int32_t first_key; /* Première clef */ uint16_t i; /* Boucle de parcours */ - instr->keys = (uint32_t *)calloc(instr->switch_size, sizeof(uint32_t)); - instr->targets = (uint32_t *)calloc(instr->switch_size, sizeof(uint32_t)); + instr->keys = (int32_t *)calloc(instr->switch_size, sizeof(int32_t)); + instr->targets = (int32_t *)calloc(instr->switch_size, sizeof(int32_t)); copy_vmpa(&iter, pos); if (G_DALVIK_INSTRUCTION(instr)->ptype == DPO_PACKED_SWITCH) { - if (!g_binary_content_read_u32(content, &iter, SRE_LITTLE, &first_key)) + if (!g_binary_content_read_s32(content, &iter, SRE_LITTLE, &first_key)) goto gdsdd_bad; for (i = 0; i < instr->switch_size; i++) { instr->keys[i] = first_key + i; - if (!g_binary_content_read_u32(content, &iter, SRE_LITTLE, &instr->targets[i])) + if (!g_binary_content_read_s32(content, &iter, SRE_LITTLE, &instr->targets[i])) goto gdsdd_bad; } @@ -256,11 +256,11 @@ static bool g_dalvik_switch_decode_data(GDalvikSwitchInstr *instr, const GBinCon else { for (i = 0; i < instr->switch_size; i++) - if (!g_binary_content_read_u32(content, &iter, SRE_LITTLE, &instr->keys[i])) + if (!g_binary_content_read_s32(content, &iter, SRE_LITTLE, &instr->keys[i])) goto gdsdd_bad; for (i = 0; i < instr->switch_size; i++) - if (!g_binary_content_read_u32(content, &iter, SRE_LITTLE, &instr->targets[i])) + if (!g_binary_content_read_s32(content, &iter, SRE_LITTLE, &instr->targets[i])) goto gdsdd_bad; } @@ -288,7 +288,7 @@ static bool g_dalvik_switch_decode_data(GDalvikSwitchInstr *instr, const GBinCon * * ******************************************************************************/ -uint16_t g_dalvik_switch_get_data(GDalvikSwitchInstr *instr, const uint32_t **keys, const uint32_t **targets) +uint16_t g_dalvik_switch_get_data(GDalvikSwitchInstr *instr, const int32_t **keys, const int32_t **targets) { if (keys != NULL) *keys = instr->keys; diff --git a/src/arch/dalvik/pseudo/switch.h b/src/arch/dalvik/pseudo/switch.h index ae52758..b0fb1b2 100644 --- a/src/arch/dalvik/pseudo/switch.h +++ b/src/arch/dalvik/pseudo/switch.h @@ -56,7 +56,7 @@ GType g_dalvik_switch_instr_get_type(void); GArchInstruction *g_dalvik_switch_instr_new(uint16_t, GDalvikContext *, const GBinContent *, vmpa2t *); /* Fournit les données associées à un branchement Dalvik. */ -uint16_t g_dalvik_switch_get_data(GDalvikSwitchInstr *, const uint32_t **, const uint32_t **); +uint16_t g_dalvik_switch_get_data(GDalvikSwitchInstr *, const int32_t **, const int32_t **); |