Merge pull request #13702 from erw7/fix-build_stl_str_hl

buffer.c: fix problem of memory allocation
This commit is contained in:
erw7
2021-02-06 12:56:20 +09:00
committed by GitHub

View File

@@ -3486,7 +3486,7 @@ int build_stl_str_hl(
stl_items = xmalloc(sizeof(stl_item_t) * stl_items_len); stl_items = xmalloc(sizeof(stl_item_t) * stl_items_len);
stl_groupitems = xmalloc(sizeof(int) * stl_items_len); stl_groupitems = xmalloc(sizeof(int) * stl_items_len);
stl_hltab = xmalloc(sizeof(stl_hlrec_t) * stl_items_len); stl_hltab = xmalloc(sizeof(stl_hlrec_t) * stl_items_len);
stl_tabtab = xmalloc(sizeof(stl_hlrec_t) * stl_items_len); stl_tabtab = xmalloc(sizeof(StlClickRecord) * stl_items_len);
stl_separator_locations = xmalloc(sizeof(int) * stl_items_len); stl_separator_locations = xmalloc(sizeof(int) * stl_items_len);
} }
@@ -4482,22 +4482,15 @@ int build_stl_str_hl(
int num_separators = 0; int num_separators = 0;
for (int i = 0; i < itemcnt; i++) { for (int i = 0; i < itemcnt; i++) {
if (stl_items[i].type == Separate) { if (stl_items[i].type == Separate) {
// Create an array of the start location for each
// separator mark.
stl_separator_locations[num_separators] = i;
num_separators++; num_separators++;
} }
} }
// If we have separated groups, then we deal with it now // If we have separated groups, then we deal with it now
if (num_separators) { if (num_separators) {
// Create an array of the start location for each
// separator mark.
int index = 0;
for (int i = 0; i < itemcnt; i++) {
if (stl_items[i].type == Separate) {
stl_separator_locations[index] = i;
index++;
}
}
int standard_spaces = (maxwidth - width) / num_separators; int standard_spaces = (maxwidth - width) / num_separators;
int final_spaces = (maxwidth - width) - int final_spaces = (maxwidth - width) -
standard_spaces * (num_separators - 1); standard_spaces * (num_separators - 1);