diff options
author | Bram Moolenaar <Bram@vim.org> | 2021-04-08 18:05:03 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2021-04-08 18:05:03 +0200 |
commit | 175a41c13f3e27e30c662f2f418c5a347dbc645d (patch) | |
tree | 33eb903cc6dc41604dd4c5f136417114e1003348 /src | |
parent | fa5963880df1d11613594ab78c0a68f894d34aa3 (diff) |
patch 8.2.2736: Vim9: for loop over string is a bit slowv8.2.2736
Problem: Vim9: for loop over string is a bit slow.
Solution: Avoid using strlen().
Diffstat (limited to 'src')
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/vim9execute.c | 3 |
2 files changed, 3 insertions, 2 deletions
diff --git a/src/version.c b/src/version.c index f1534f1284..4e6435c31d 100644 --- a/src/version.c +++ b/src/version.c @@ -751,6 +751,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 2736, +/**/ 2735, /**/ 2734, diff --git a/src/vim9execute.c b/src/vim9execute.c index d3e2af772a..d6c4764882 100644 --- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -2792,12 +2792,11 @@ call_def_function( else if (ltv->v_type == VAR_STRING) { char_u *str = ltv->vval.v_string; - int len = str == NULL ? 0 : (int)STRLEN(str); // Push the next character from the string. The index // is for the last byte of the previous character. ++idxtv->vval.v_number; - if (idxtv->vval.v_number >= len) + if (str == NULL || str[idxtv->vval.v_number] == NUL) { // past the end of the string, jump to "endfor" ectx.ec_iidx = iptr->isn_arg.forloop.for_end; |