summaryrefslogtreecommitdiff
path: root/py/obj.h
diff options
context:
space:
mode:
authorJim Mussared <jim.mussared@gmail.com>2022-08-23 18:35:37 +1000
committerDamien George <damien@micropython.org>2022-08-26 16:44:35 +1000
commit3a910b15650636efc58bce48cc1bfa0debfd375c (patch)
treed93e2e0dcb591a1724424f6ed5e07a6bb251d67a /py/obj.h
parent88864587f5af292d7f86aceb6bf40e8331e9a8d6 (diff)
py/objstr: Optimise mp_obj_new_str_from_vstr for known-safe strings.
The new `mp_obj_new_str_from_utf8_vstr` can be used when you know you already have a unicode-safe string. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Diffstat (limited to 'py/obj.h')
-rw-r--r--py/obj.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/py/obj.h b/py/obj.h
index d171e0fe6..0b0a9692e 100644
--- a/py/obj.h
+++ b/py/obj.h
@@ -792,6 +792,11 @@ mp_obj_t mp_obj_new_int_from_ull(unsigned long long val); // this must return a
mp_obj_t mp_obj_new_str(const char *data, size_t len);
mp_obj_t mp_obj_new_str_via_qstr(const char *data, size_t len);
mp_obj_t mp_obj_new_str_from_vstr(vstr_t *vstr);
+#if MICROPY_PY_BUILTINS_STR_UNICODE && MICROPY_PY_BUILTINS_STR_UNICODE_CHECK
+mp_obj_t mp_obj_new_str_from_utf8_vstr(vstr_t *vstr); // only use when vstr is already known to be utf-8 encoded
+#else
+#define mp_obj_new_str_from_utf8_vstr mp_obj_new_str_from_vstr
+#endif
mp_obj_t mp_obj_new_bytes_from_vstr(vstr_t *vstr);
mp_obj_t mp_obj_new_bytes(const byte *data, size_t len);
mp_obj_t mp_obj_new_bytearray(size_t n, const void *items);