fixed minor flaws in the code

This commit is contained in:
hyung-hwan 2021-03-25 16:53:05 +00:00
parent 307bdee5cc
commit e46d7fa286
2 changed files with 7 additions and 3 deletions

View File

@ -315,7 +315,7 @@ int hcl_inttoooi (hcl_t* hcl, hcl_oop_t x, hcl_ooi_t* i)
int n; int n;
n = hcl_inttooow(hcl, x, &w); n = hcl_inttooow(hcl, x, &w);
if (n < 0) if (n < 0)
{ {
HCL_ASSERT (hcl, HCL_TYPE_MAX(hcl_ooi_t) + HCL_TYPE_MIN(hcl_ooi_t) == -1); /* assume 2's complement */ HCL_ASSERT (hcl, HCL_TYPE_MAX(hcl_ooi_t) + HCL_TYPE_MIN(hcl_ooi_t) == -1); /* assume 2's complement */
if (w > (hcl_oow_t)HCL_TYPE_MAX(hcl_ooi_t) + 1) if (w > (hcl_oow_t)HCL_TYPE_MAX(hcl_ooi_t) + 1)
@ -377,7 +377,7 @@ static HCL_INLINE int bigint_to_uintmax (hcl_t* hcl, hcl_oop_t num, hcl_uintmax_
case 4: case 4:
*w = ((hcl_uintmax_t)HCL_OBJ_GET_HALFWORD_VAL(num, 0) << HCL_LIW_BITS * 3) | *w = ((hcl_uintmax_t)HCL_OBJ_GET_HALFWORD_VAL(num, 0) << HCL_LIW_BITS * 3) |
((hcl_uintmax_t)HCL_OBJ_GET_HALFWORD_VAL(num, 1) << HCL_LIW_BITS * 2) | ((hcl_uintmax_t)HCL_OBJ_GET_HALFWORD_VAL(num, 1) << HCL_LIW_BITS * 2) |
((hcl_uintmax_t)HCL_OBJ_GET_HALFWORD_VAL(num, 2) << HCL_LIW_BITS * 1) | ((hcl_uintmax_t)HCL_OBJ_GET_HALFWORD_VAL(num, 2) << HCL_LIW_BITS * 1) |
HCL_OBJ_GET_HALFWORD_VAL(num, 3); HCL_OBJ_GET_HALFWORD_VAL(num, 3);
goto done; goto done;
@ -640,6 +640,9 @@ hcl_oop_t hcl_ooitoint (hcl_t* hcl, hcl_ooi_t i)
} }
} }
#if (HCL_SIZEOF_UINTMAX_T == HCL_SIZEOF_OOW_T)
/* do nothing. required macros are defined in hcl.h */
#else
hcl_oop_t hcl_intmaxtoint (hcl_t* hcl, hcl_intmax_t i) hcl_oop_t hcl_intmaxtoint (hcl_t* hcl, hcl_intmax_t i)
{ {
if (HCL_IN_SMOOI_RANGE(i)) if (HCL_IN_SMOOI_RANGE(i))
@ -663,6 +666,7 @@ hcl_oop_t hcl_uintmaxtoint (hcl_t* hcl, hcl_uintmax_t i)
return make_bigint_with_uintmax(hcl, i); return make_bigint_with_uintmax(hcl, i);
} }
} }
#endif
static HCL_INLINE hcl_oop_t expand_bigint (hcl_t* hcl, hcl_oop_t oop, hcl_oow_t inc) static HCL_INLINE hcl_oop_t expand_bigint (hcl_t* hcl, hcl_oop_t oop, hcl_oow_t inc)
{ {

View File

@ -1084,7 +1084,7 @@ static void free_heap (hcl_t* hcl, void* ptr)
actual_ptr = (hcl_oow_t*)ptr - 1; actual_ptr = (hcl_oow_t*)ptr - 1;
munmap (actual_ptr, *actual_ptr); munmap (actual_ptr, *actual_ptr);
#else #else
return HCL_MMGR_FREE(hcl->_mmgr, ptr); HCL_MMGR_FREE(hcl->_mmgr, ptr);
#endif #endif
} }