diff options
author | John Marriott <basilisk@internode.on.net> | 2024-05-20 19:18:26 +0200 |
---|---|---|
committer | Christian Brabandt <cb@256bit.org> | 2024-05-20 19:18:26 +0200 |
commit | 8c85a2a49acf80e4f53ec51e6ff2a5f3830eeddb (patch) | |
tree | d6554cf3c98aeef4af872d35ded945933bf911f8 /src/cmdhist.c | |
parent | 69dff00dfb37077f4a80fd9635ea963889ad4b49 (diff) |
patch 9.1.0426: too many strlen() calls in search.cv9.1.0426
Problem: too many strlen() calls in search.c
Solution: refactor code and remove more strlen() calls,
use explicit variable to remember strlen
(John Marriott)
closes: #14796
Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src/cmdhist.c')
-rw-r--r-- | src/cmdhist.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/cmdhist.c b/src/cmdhist.c index 6342f02bdd..7cdcee6b86 100644 --- a/src/cmdhist.c +++ b/src/cmdhist.c @@ -297,11 +297,11 @@ static int last_maptick = -1; // last seen maptick add_to_history( int histype, char_u *new_entry, + size_t new_entrylen, int in_map, // consider maptick when inside a mapping int sep) // separator character used (search hist) { histentry_T *hisptr; - int len; if (hislen == 0) // no history return; @@ -336,10 +336,9 @@ add_to_history( vim_free(hisptr->hisstr); // Store the separator after the NUL of the string. - len = (int)STRLEN(new_entry); - hisptr->hisstr = vim_strnsave(new_entry, len + 2); + hisptr->hisstr = vim_strnsave(new_entry, new_entrylen + 2); if (hisptr->hisstr != NULL) - hisptr->hisstr[len + 1] = sep; + hisptr->hisstr[new_entrylen + 1] = sep; hisptr->hisnum = ++hisnum[histype]; hisptr->viminfo = FALSE; @@ -566,7 +565,7 @@ f_histadd(typval_T *argvars UNUSED, typval_T *rettv) return; init_history(); - add_to_history(histype, str, FALSE, NUL); + add_to_history(histype, str, STRLEN(str), FALSE, NUL); rettv->vval.v_number = TRUE; } |