patch 9.1.1467: too many strlen() calls
Problem: too many strlen() calls
Solution: Change expand_env() to return string length
(John Marriott)
This commit does the following changes:
- In expand_env_esc():
- return the length of the returned dst string.
- refactor to remove some calls to STRLEN() and STRCAT()
- add check for out-of-memory condition.
- Change call sites in various source files to use the return value
closes: #17561
Signed-off-by: John Marriott <basilisk@internode.on.net>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
8311e7d6b4
commit
fff0132399
@ -99,6 +99,8 @@ viminfo_filename(char_u *file)
|
||||
{
|
||||
if (file == NULL || *file == NUL)
|
||||
{
|
||||
size_t len;
|
||||
|
||||
if (*p_viminfofile != NUL)
|
||||
file = p_viminfofile;
|
||||
else if ((file = find_viminfo_parameter('n')) == NULL || *file == NUL)
|
||||
@ -127,9 +129,12 @@ viminfo_filename(char_u *file)
|
||||
#endif
|
||||
file = (char_u *)VIMINFO_FILE;
|
||||
}
|
||||
expand_env(file, NameBuff, MAXPATHL);
|
||||
len = expand_env(file, NameBuff, MAXPATHL);
|
||||
file = NameBuff;
|
||||
|
||||
return vim_strnsave(file, len);
|
||||
}
|
||||
|
||||
return vim_strsave(file);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user