diff options
Diffstat (limited to 'py/objint_mpz.c')
-rw-r--r-- | py/objint_mpz.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/py/objint_mpz.c b/py/objint_mpz.c index 49a9a91e25..02b3ec0fe4 100644 --- a/py/objint_mpz.c +++ b/py/objint_mpz.c @@ -303,6 +303,9 @@ mp_obj_t mp_obj_new_int_from_float(mp_float_t val) { nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_OverflowError, "can't convert inf to int")); } else if (cl == FP_NAN) { nlr_raise(mp_obj_new_exception_msg_varg(&mp_type_ValueError, "can't convert NaN to int")); + } else if (MICROPY_FLOAT_C_FUN(fabs)(val) < 10000) { + // temporary(?) fix for optimising case where int will be small int + return MP_OBJ_NEW_SMALL_INT(MICROPY_FLOAT_C_FUN(trunc)(val)); } else { mp_obj_int_t *o = mp_obj_int_new_mpz(); mpz_set_from_float(&o->mpz, val); |