patch 9.1.1691: over-allocation in ga_concat_strings()
Problem: over-allocation in ga_concat_strings()
Solution: Fix ga_concat_strings() and only allocate n-1 separator length
bytes (Damien Lejay).
ga_concat_strings() was adding the separator length for every item,
including the last one. Only (n - 1) separators are actually used.
This caused harmless but unnecessary overallocation.
closes: #18112
Signed-off-by: Damien Lejay <damien@lejay.be>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
committed by
Christian Brabandt
parent
e8948a1f80
commit
0a9ad34cad
@ -770,7 +770,10 @@ ga_concat_strings(garray_T *gap, char *sep)
|
||||
char_u *p;
|
||||
|
||||
for (i = 0; i < gap->ga_len; ++i)
|
||||
len += (int)STRLEN(((char_u **)(gap->ga_data))[i]) + sep_len;
|
||||
len += (int)STRLEN(((char_u **)(gap->ga_data))[i]);
|
||||
|
||||
if (gap->ga_len > 1)
|
||||
len += (gap->ga_len - 1) * sep_len;
|
||||
|
||||
s = alloc(len + 1);
|
||||
if (s == NULL)
|
||||
|
||||
@ -724,6 +724,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1691,
|
||||
/**/
|
||||
1690,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user