summaryrefslogtreecommitdiff
path: root/src/arch/operands/immediate.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/operands/immediate.c')
-rw-r--r--src/arch/operands/immediate.c8
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);