diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-04-13 05:41:00 +0300 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-04-13 06:45:12 +0300 |
commit | f130ca1f60fbbca95516b722ce0119e5f3ca2767 (patch) | |
tree | 0c50e96b2f8ce3a02f0786510a80f676629a6325 | |
parent | 73b7027b8330ea813c4ba83f074bc8937a952d9c (diff) | |
download | micropython-f130ca1f60fbbca95516b722ce0119e5f3ca2767.tar.gz micropython-f130ca1f60fbbca95516b722ce0119e5f3ca2767.zip |
py: Make bytes type hashable.
-rw-r--r-- | py/obj.c | 2 | ||||
-rw-r--r-- | py/objstr.c | 3 |
2 files changed, 3 insertions, 2 deletions
@@ -110,7 +110,7 @@ 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_STR(o_in)) { + } else if (MP_OBJ_IS_STR(o_in) || MP_OBJ_IS_TYPE(o_in, &mp_type_bytes)) { return mp_obj_str_get_hash(o_in); } else if (MP_OBJ_IS_TYPE(o_in, &mp_type_NoneType)) { return (machine_int_t)o_in; diff --git a/py/objstr.c b/py/objstr.c index 12627d3cd1..d933fa5e34 100644 --- a/py/objstr.c +++ b/py/objstr.c @@ -1480,7 +1480,8 @@ STATIC void bad_implicit_conversion(mp_obj_t self_in) { } uint mp_obj_str_get_hash(mp_obj_t self_in) { - if (MP_OBJ_IS_STR(self_in)) { + // TODO: This has too big overhead for hash accessor + if (MP_OBJ_IS_STR(self_in) || MP_OBJ_IS_TYPE(self_in, &mp_type_bytes)) { GET_STR_HASH(self_in, h); return h; } else { |