summaryrefslogtreecommitdiffstatshomepage
path: root/py/objstr.c
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/objstr.c
parent88864587f5af292d7f86aceb6bf40e8331e9a8d6 (diff)
downloadmicropython-3a910b15650636efc58bce48cc1bfa0debfd375c.tar.gz
micropython-3a910b15650636efc58bce48cc1bfa0debfd375c.zip
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/objstr.c')
-rw-r--r--py/objstr.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/py/objstr.c b/py/objstr.c
index ab1229ad66..5a62237516 100644
--- a/py/objstr.c
+++ b/py/objstr.c
@@ -2256,6 +2256,13 @@ mp_obj_t mp_obj_new_str_from_vstr(vstr_t *vstr) {
return mp_obj_new_str_type_from_vstr(&mp_type_str, 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) {
+ // bypasses utf8_check.
+ return mp_obj_new_str_type_from_vstr(&mp_type_str, vstr);
+}
+#endif // MICROPY_PY_BUILTINS_STR_UNICODE && MICROPY_PY_BUILTINS_STR_UNICODE_CHECK
+
mp_obj_t mp_obj_new_bytes_from_vstr(vstr_t *vstr) {
return mp_obj_new_str_type_from_vstr(&mp_type_bytes, vstr);
}