diff options
author | Rachel Dowdall <rjdowdall@gmail.com> | 2014-03-22 20:29:56 +0000 |
---|---|---|
committer | Rachel Dowdall <rjdowdall@gmail.com> | 2014-03-22 20:29:56 +0000 |
commit | 2d15deebdcf7d6fb8f78907e0c6ca9cb9c2aa000 (patch) | |
tree | 4dba583967542dd95ebdf3f62865f9bb56db2350 /py/runtime.c | |
parent | cde8631f15db9941986f8d04534e52462a76094b (diff) | |
download | micropython-2d15deebdcf7d6fb8f78907e0c6ca9cb9c2aa000.tar.gz micropython-2d15deebdcf7d6fb8f78907e0c6ca9cb9c2aa000.zip |
Fixed floor division on mp ints and small ints. Added a floordivide test case.
Diffstat (limited to 'py/runtime.c')
-rw-r--r-- | py/runtime.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/py/runtime.c b/py/runtime.c index 95c3a44159..94f3190566 100644 --- a/py/runtime.c +++ b/py/runtime.c @@ -5,6 +5,7 @@ #include <stdio.h> #include <string.h> #include <assert.h> +#include <math.h> #include "nlr.h" #include "misc.h" @@ -661,7 +662,11 @@ mp_obj_t rt_binary_op(int op, mp_obj_t lhs, mp_obj_t rhs) { break; } case RT_BINARY_OP_FLOOR_DIVIDE: - case RT_BINARY_OP_INPLACE_FLOOR_DIVIDE: lhs_val /= rhs_val; break; + case RT_BINARY_OP_INPLACE_FLOOR_DIVIDE: + { + lhs_val = python_floor_divide(lhs_val, rhs_val); + break; + } #if MICROPY_ENABLE_FLOAT case RT_BINARY_OP_TRUE_DIVIDE: case RT_BINARY_OP_INPLACE_TRUE_DIVIDE: return mp_obj_new_float((mp_float_t)lhs_val / (mp_float_t)rhs_val); |