0
0
mirror of https://github.com/vim/vim.git synced 2025-09-24 03:44:06 -04:00

patch 8.2.2736: Vim9: for loop over string is a bit slow

Problem:    Vim9: for loop over string is a bit slow.
Solution:   Avoid using strlen().
This commit is contained in:
Bram Moolenaar
2021-04-08 18:05:03 +02:00
parent fa5963880d
commit 175a41c13f
2 changed files with 3 additions and 2 deletions

View File

@@ -750,6 +750,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
2736,
/**/
2735,
/**/

View File

@@ -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;