Skip to content

Commit

Permalink
py/obj.h: Use uint64_t instead of mp_int_t in repr-D MP_OBJ_IS_x macros.
Browse files Browse the repository at this point in the history
This follows how it's already done in MP_OBJ_IS_OBJ: the objects are
considered 64-bit unsigned ints for the purpose of bitwise manipulation.
  • Loading branch information
dpgeorge committed Oct 1, 2018
1 parent a9237ce commit 69e7903
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions py/obj.h
Original file line number Diff line number Diff line change
Expand Up @@ -171,12 +171,12 @@ static inline bool MP_OBJ_IS_OBJ(mp_const_obj_t o)
#elif MICROPY_OBJ_REPR == MICROPY_OBJ_REPR_D

static inline bool MP_OBJ_IS_SMALL_INT(mp_const_obj_t o)
{ return ((((mp_int_t)(o)) & 0xffff000000000000) == 0x0001000000000000); }
{ return ((((uint64_t)(o)) & 0xffff000000000000) == 0x0001000000000000); }
#define MP_OBJ_SMALL_INT_VALUE(o) (((mp_int_t)((o) << 16)) >> 17)
#define MP_OBJ_NEW_SMALL_INT(small_int) (((((uint64_t)(small_int)) & 0x7fffffffffff) << 1) | 0x0001000000000001)

static inline bool MP_OBJ_IS_QSTR(mp_const_obj_t o)
{ return ((((mp_int_t)(o)) & 0xffff000000000000) == 0x0002000000000000); }
{ return ((((uint64_t)(o)) & 0xffff000000000000) == 0x0002000000000000); }
#define MP_OBJ_QSTR_VALUE(o) ((((uint32_t)(o)) >> 1) & 0xffffffff)
#define MP_OBJ_NEW_QSTR(qst) ((mp_obj_t)((((mp_uint_t)(qst)) << 1) | 0x0002000000000001))

Expand Down

0 comments on commit 69e7903

Please sign in to comment.