diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2016-05-09 21:53:02 +0300 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2016-05-09 21:55:09 +0300 |
commit | 6de8dbb4880e58c68a08205cb2b9c15940143439 (patch) | |
tree | 0378c38d468d94f656479c87da2168c2555cf17f /py | |
parent | 460b0863334fb143667ae6aa1b5f0bd2bbdf8282 (diff) | |
download | micropython-6de8dbb4880e58c68a08205cb2b9c15940143439.tar.gz micropython-6de8dbb4880e58c68a08205cb2b9c15940143439.zip |
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.
Diffstat (limited to 'py')
-rw-r--r-- | py/objstr.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/py/objstr.c b/py/objstr.c index 3d3845f4a4..4c0984c38c 100644 --- a/py/objstr.c +++ b/py/objstr.c @@ -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 { |