diff options
author | Damien George <damien.p.george@gmail.com> | 2014-01-08 17:33:12 +0000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2014-01-08 17:33:12 +0000 |
commit | 38a2da68c2e02b8fc5ae308ca9e3b667f8a0aedc (patch) | |
tree | 8bf705c9aff2013e1949e5edd803893113d385d3 /py/obj.c | |
parent | ea9e441a75d7ea6633b0ea95b21667c48a6f7b6a (diff) | |
download | micropython-38a2da68c2e02b8fc5ae308ca9e3b667f8a0aedc.tar.gz micropython-38a2da68c2e02b8fc5ae308ca9e3b667f8a0aedc.zip |
py: Stuff qstr in object pointer; keys for mp_map_t are now always mp_obj_t.
Diffstat (limited to 'py/obj.c')
-rw-r--r-- | py/obj.c | 6 |
1 files changed, 6 insertions, 0 deletions
@@ -16,6 +16,8 @@ mp_obj_t mp_obj_get_type(mp_obj_t o_in) { if (MP_OBJ_IS_SMALL_INT(o_in)) { return (mp_obj_t)&int_type; + } else if (MP_OBJ_IS_QSTR(o_in)) { + return (mp_obj_t)&str_type; } else { mp_obj_base_t *o = o_in; return (mp_obj_t)o->type; @@ -71,6 +73,8 @@ machine_int_t mp_obj_hash(mp_obj_t o_in) { return 1; // needs to hash to same as the integer 1, since True==1 } else if (MP_OBJ_IS_SMALL_INT(o_in)) { return MP_OBJ_SMALL_INT_VALUE(o_in); + } else if (MP_OBJ_IS_QSTR(o_in)) { + return MP_OBJ_QSTR_VALUE(o_in); } else if (MP_OBJ_IS_TYPE(o_in, &none_type)) { return (machine_int_t)o_in; } else if (MP_OBJ_IS_TYPE(o_in, &str_type)) { @@ -107,6 +111,8 @@ bool mp_obj_equal(mp_obj_t o1, mp_obj_t o2) { return false; } } + } else if (MP_OBJ_IS_QSTR(o1) || MP_OBJ_IS_QSTR(o2)) { + return false; } else if (MP_OBJ_IS_TYPE(o1, &str_type) && MP_OBJ_IS_TYPE(o2, &str_type)) { return mp_obj_str_get(o1) == mp_obj_str_get(o2); } else { |