diff --git a/py/obj.c b/py/obj.c index 555a4a8b96..34ecdab848 100644 --- a/py/obj.c +++ b/py/obj.c @@ -33,6 +33,7 @@ #include "py/obj.h" #include "py/objtype.h" #include "py/objint.h" +#include "py/objstr.h" #include "py/runtime0.h" #include "py/runtime.h" #include "py/stackctrl.h" @@ -422,7 +423,8 @@ mp_obj_t mp_obj_len_maybe(mp_obj_t o_in) { MP_OBJ_IS_STR(o_in) || #endif MP_OBJ_IS_TYPE(o_in, &mp_type_bytes)) { - return MP_OBJ_NEW_SMALL_INT(mp_obj_str_get_len(o_in)); + GET_STR_LEN(o_in, l); + return MP_OBJ_NEW_SMALL_INT(l); } else { mp_obj_type_t *type = mp_obj_get_type(o_in); if (type->unary_op != NULL) { diff --git a/py/obj.h b/py/obj.h index 10a678e83b..08fc334c97 100644 --- a/py/obj.h +++ b/py/obj.h @@ -560,8 +560,6 @@ void mp_init_emergency_exception_buf(void); // str bool mp_obj_str_equal(mp_obj_t s1, mp_obj_t s2); -mp_uint_t mp_obj_str_get_hash(mp_obj_t self_in); -mp_uint_t mp_obj_str_get_len(mp_obj_t self_in); qstr mp_obj_str_get_qstr(mp_obj_t self_in); // use this if you will anyway convert the string to a qstr const char *mp_obj_str_get_str(mp_obj_t self_in); // use this only if you need the string to be null terminated const char *mp_obj_str_get_data(mp_obj_t self_in, mp_uint_t *len); diff --git a/py/objstr.c b/py/objstr.c index f1e4e6b7bf..42a1d5c5d4 100644 --- a/py/objstr.c +++ b/py/objstr.c @@ -1996,16 +1996,6 @@ STATIC void bad_implicit_conversion(mp_obj_t self_in) { } } -mp_uint_t mp_obj_str_get_len(mp_obj_t self_in) { - // TODO This has a double check for the type, one in obj.c and one here - if (MP_OBJ_IS_STR_OR_BYTES(self_in)) { - GET_STR_LEN(self_in, l); - return l; - } else { - bad_implicit_conversion(self_in); - } -} - // use this if you will anyway convert the string to a qstr // will be more efficient for the case where it's already a qstr qstr mp_obj_str_get_qstr(mp_obj_t self_in) {