diff options
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/operands/immediate.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/arch/operands/immediate.c b/src/arch/operands/immediate.c index 746bcae..2a3ca0b 100644 --- a/src/arch/operands/immediate.c +++ b/src/arch/operands/immediate.c @@ -667,6 +667,8 @@ bool g_imm_operand_get_value(const GImmOperand *operand, MemoryDataSize size, .. int32_t *sval32; /* Valeur sur 32 bits */ int64_t *sval64; /* Valeur sur 64 bits */ + result = false; + extra = GET_IMM_OP_EXTRA(operand); g_bit_lock(&extra->lock, HOLE_LOCK_BIT); @@ -674,15 +676,13 @@ bool g_imm_operand_get_value(const GImmOperand *operand, MemoryDataSize size, .. if (extra->size != size) goto exit; - result = true; - va_start(ap, size); switch (size) { /* Pour GCC... */ case MDS_UNDEFINED: - result = false; + goto exit; break; case MDS_4_BITS_UNSIGNED: case MDS_8_BITS_UNSIGNED: @@ -722,6 +722,8 @@ bool g_imm_operand_get_value(const GImmOperand *operand, MemoryDataSize size, .. va_end(ap); + result = true; + exit: g_bit_unlock(&extra->lock, HOLE_LOCK_BIT); |