Commit 6de8dbb4 authored by Paul Sokolovsky's avatar Paul Sokolovsky
Browse files

py/objstr: .format(): Avoid call to vstr_null_terminated_str().

By comparing with string end pointer instead of checking for NUL byte.
Should alleviate reallocations and fragmentation a tiny bit.
parent 460b0863
......@@ -1043,7 +1043,7 @@ STATIC vstr_t mp_obj_str_format_helper(const char *str, const char *top, int *ar
// recursively call the formatter to format any nested specifiers
MP_STACK_CHECK();
vstr_t format_spec_vstr = mp_obj_str_format_helper(format_spec, str, arg_i, n_args, args, kwargs);
const char *s = vstr_null_terminated_str(&format_spec_vstr);
const char *s = format_spec_vstr.buf;
const char *stop = s + format_spec_vstr.len;
if (isalignment(*s)) {
align = *s++;
......@@ -1083,7 +1083,7 @@ STATIC vstr_t mp_obj_str_format_helper(const char *str, const char *top, int *ar
if (istype(*s)) {
type = *s++;
}
if (*s) {
if (s != stop) {
if (MICROPY_ERROR_REPORTING == MICROPY_ERROR_REPORTING_TERSE) {
terse_str_format_value_error();
} else {
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment