diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-06-13 23:37:18 +0300 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-06-27 00:04:18 +0300 |
commit | e7f2b4c875fa3130e4ad37721a7d231380456895 (patch) | |
tree | 11b053e49d893277e3522552ae5a16a1ab907c8f /py/obj.c | |
parent | 86d3898e709f32bef9e44dd558e7ea5569398011 (diff) | |
download | micropython-e7f2b4c875fa3130e4ad37721a7d231380456895.tar.gz micropython-e7f2b4c875fa3130e4ad37721a7d231380456895.zip |
objstrunicode: Revamp len() handling for unicode, and optimize bool().
Diffstat (limited to 'py/obj.c')
-rw-r--r-- | py/obj.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -354,7 +354,12 @@ uint mp_get_index(const mp_obj_type_t *type, machine_uint_t len, mp_obj_t index, // may return MP_OBJ_NULL mp_obj_t mp_obj_len_maybe(mp_obj_t o_in) { - if (MP_OBJ_IS_STR(o_in) || MP_OBJ_IS_TYPE(o_in, &mp_type_bytes)) { + if ( +#if !MICROPY_PY_BUILTINS_STR_UNICODE + // It's simple - unicode is slow, non-unicode is fast + MP_OBJ_IS_STR(o_in) || +#endif + MP_OBJ_IS_TYPE(o_in, &mp_type_bytes)) { return MP_OBJ_NEW_SMALL_INT((machine_int_t)mp_obj_str_get_len(o_in)); } else { mp_obj_type_t *type = mp_obj_get_type(o_in); |