diff options
author | Damien George <damien.p.george@gmail.com> | 2017-03-23 22:57:08 +1100 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2017-03-23 22:57:08 +1100 |
commit | febeff4af429483b41137f0befc70d14c9077ae1 (patch) | |
tree | 09cb739636e5290c835e582d409faac9d0a15311 /py/modmath.c | |
parent | f64a3e296e1c696b1c8a09bac68f7e075f419c8b (diff) | |
download | micropython-febeff4af429483b41137f0befc70d14c9077ae1.tar.gz micropython-febeff4af429483b41137f0befc70d14c9077ae1.zip |
py/modmath: Allow trunc/ceil/floor to return a big int if necessary.
Previous to this patch, if the result of the trunc/ceil/floor functions
overflowed a small int, or was inf or nan, then a garbage value was
returned. With this patch the correct big-int is returned if necessary,
and exceptions are raised for inf or nan.
Diffstat (limited to 'py/modmath.c')
-rw-r--r-- | py/modmath.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/py/modmath.c b/py/modmath.c index 7c51eab03a..ddab337d05 100644 --- a/py/modmath.c +++ b/py/modmath.c @@ -57,7 +57,7 @@ STATIC NORETURN void math_error(void) { STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_math_## py_name ## _obj, mp_math_ ## py_name); #define MATH_FUN_1_TO_INT(py_name, c_name) \ - STATIC mp_obj_t mp_math_ ## py_name(mp_obj_t x_obj) { mp_int_t x = MICROPY_FLOAT_C_FUN(c_name)(mp_obj_get_float(x_obj)); return mp_obj_new_int(x); } \ + STATIC mp_obj_t mp_math_ ## py_name(mp_obj_t x_obj) { return mp_obj_new_int_from_float(MICROPY_FLOAT_C_FUN(c_name)(mp_obj_get_float(x_obj))); } \ STATIC MP_DEFINE_CONST_FUN_OBJ_1(mp_math_## py_name ## _obj, mp_math_ ## py_name); #define MATH_FUN_1_ERRCOND(py_name, c_name, error_condition) \ |