diff --git a/arch/X86/X86ATTInstPrinter.c b/arch/X86/X86ATTInstPrinter.c
index 7daf406..e0e4c79 100644
--- a/arch/X86/X86ATTInstPrinter.c
+++ b/arch/X86/X86ATTInstPrinter.c
@@ -656,8 +656,8 @@
 		}
 	} else if (MCOperand_isImm(Op)) {
 		// Print X86 immediates as signed values.
-		int64_t imm = MCOperand_getImm(Op);
 		uint8_t encsize;
+		int64_t imm = MCOperand_getImm(Op);
 		int opsize = X86_immediate_size(MCInst_getOpcode(MI), &encsize);
 		if (opsize == 1)    // print 1 byte immediate in positive form
 			imm = imm & 0xff;
@@ -738,12 +738,10 @@
 				MI->has_imm = true;
 				MI->flat_insn->detail->x86.operands[MI->flat_insn->detail->x86.op_count].imm = imm;
 
-				if (opsize > 0)
-				{
+				if (opsize > 0) {
 					MI->flat_insn->detail->x86.operands[MI->flat_insn->detail->x86.op_count].size = (uint8_t)opsize;
 					MI->flat_insn->detail->x86.encoding.imm_size = encsize;
-				}
-				else if (MI->op1_size > 0)
+				} else if (MI->op1_size > 0)
 					MI->flat_insn->detail->x86.operands[MI->flat_insn->detail->x86.op_count].size = MI->op1_size;
 				else
 					MI->flat_insn->detail->x86.operands[MI->flat_insn->detail->x86.op_count].size = MI->imm_size;
diff --git a/arch/X86/X86Disassembler.c b/arch/X86/X86Disassembler.c
index 0dea5ce..24b0dbb 100644
--- a/arch/X86/X86Disassembler.c
+++ b/arch/X86/X86Disassembler.c
@@ -891,8 +891,7 @@
 	pub->detail->x86.sib_base = x86_map_sib_base(inter->sibBase);
 
 	pub->detail->x86.disp = inter->displacement;
-	if (inter->consumedDisplacement)
-	{
+	if (inter->consumedDisplacement) {
 		pub->detail->x86.encoding.disp_offset = inter->displacementOffset;
 		pub->detail->x86.encoding.disp_size = inter->displacementSize;
 	}
diff --git a/arch/X86/X86IntelInstPrinter.c b/arch/X86/X86IntelInstPrinter.c
index a9ca606..f90d2ef 100644
--- a/arch/X86/X86IntelInstPrinter.c
+++ b/arch/X86/X86IntelInstPrinter.c
@@ -885,8 +885,8 @@
 		if (MI->op1_size == 0)
 			MI->op1_size = MI->csh->regsize_map[reg];
 	} else if (MCOperand_isImm(Op)) {
-		int64_t imm = MCOperand_getImm(Op);
 		uint8_t encsize;
+		int64_t imm = MCOperand_getImm(Op);
 		int opsize = X86_immediate_size(MCInst_getOpcode(MI), &encsize);
 		if (opsize == 1)    // print 1 byte immediate in positive form
 			imm = imm & 0xff;
@@ -952,12 +952,10 @@
 #endif
 
 				MI->flat_insn->detail->x86.operands[MI->flat_insn->detail->x86.op_count].type = X86_OP_IMM;
-				if (opsize > 0)
-				{
+				if (opsize > 0) {
 					MI->flat_insn->detail->x86.operands[MI->flat_insn->detail->x86.op_count].size = opsize;
 					MI->flat_insn->detail->x86.encoding.imm_size = encsize;
-				}
-				else if (MI->flat_insn->detail->x86.op_count > 0) {
+				} else if (MI->flat_insn->detail->x86.op_count > 0) {
 					if (MI->flat_insn->id != X86_INS_LCALL && MI->flat_insn->id != X86_INS_LJMP) {
 						MI->flat_insn->detail->x86.operands[MI->flat_insn->detail->x86.op_count].size =
 							MI->flat_insn->detail->x86.operands[0].size;
diff --git a/arch/X86/X86Mapping.c b/arch/X86/X86Mapping.c
index 7431ad1..2d7d96f 100644
--- a/arch/X86/X86Mapping.c
+++ b/arch/X86/X86Mapping.c
@@ -3593,10 +3593,10 @@
 
 	while(left <= right) {
 		m = (left + right) / 2;
-		if (id == x86_imm_size[m].id)
-		{
+		if (id == x86_imm_size[m].id) {
 			if (enc_size != NULL)
 				*enc_size = x86_imm_size[m].enc_size;
+
 			return x86_imm_size[m].size;
 		}
 
