summaryrefslogtreecommitdiffstatshomepage
path: root/py/objint_longlong.c
diff options
context:
space:
mode:
Diffstat (limited to 'py/objint_longlong.c')
-rw-r--r--py/objint_longlong.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/py/objint_longlong.c b/py/objint_longlong.c
index ea19b6804e..28d415e69e 100644
--- a/py/objint_longlong.c
+++ b/py/objint_longlong.c
@@ -71,12 +71,21 @@ void mp_obj_int_to_bytes_impl(mp_obj_t self_in, bool big_endian, mp_uint_t len,
}
}
-bool mp_obj_int_is_positive(mp_obj_t self_in) {
+int mp_obj_int_sign(mp_obj_t self_in) {
+ mp_longint_impl_t val;
if (MP_OBJ_IS_SMALL_INT(self_in)) {
- return MP_OBJ_SMALL_INT_VALUE(self_in) >= 0;
+ val = MP_OBJ_SMALL_INT_VALUE(self_in);
+ } else {
+ mp_obj_int_t *self = self_in;
+ val = self->val;
+ }
+ if (val < 0) {
+ return -1;
+ } else if (val > 0) {
+ return 1;
+ } else {
+ return 0;
}
- mp_obj_int_t *self = self_in;
- return self->val >= 0;
}
// This must handle int and bool types, and must raise a