aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien George2015-09-03 23:01:07 +0100
committerDamien George2015-09-03 23:01:07 +0100
commit516982242df9eff369f5b2eb9e320f48ba19cdc2 (patch)
tree5ce3587b97bde88fa09e01a0549a8e97194aadc9
parent8bf00084b6385d497510d76226d01a47ed1f2924 (diff)
py: Inline single use of mp_obj_str_get_len in mp_obj_len_maybe.
Gets rid of redundant double check for string type. Also remove obsolete declaration of mp_obj_str_get_hash.
-rw-r--r--py/obj.c4
-rw-r--r--py/obj.h2
-rw-r--r--py/objstr.c10
3 files changed, 3 insertions, 13 deletions
diff --git a/py/obj.c b/py/obj.c
index 555a4a8b9..34ecdab84 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 10a678e83..08fc334c9 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 f1e4e6b7b..42a1d5c5d 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) {