mirror of
https://github.com/neovim/neovim.git
synced 2025-10-05 01:16:31 +00:00
ga_growsize should be >= 1
I know it could be 0 sometimes. Running the tests with `assert(gap->ga_growsize > 0)` in ga_grow() crashes nvim while running the tests. - Add a setter for ga_growsize that checks whether the value passed is >=1 (log in case it's not) - log when ga_grow() tries to use a ga_growsize that's not >=1 - use GA_EMPTY_INIT_VALUE is many places
This commit is contained in:

committed by
Justin M. Keyes

parent
d723e7fd61
commit
be3a4b6ca8
@@ -3180,8 +3180,8 @@ static int reg_line_lbr; /* "\n" in string is line break */
|
||||
* or regbehind_T.
|
||||
* "backpos_T" is a table with backpos_T for BACK
|
||||
*/
|
||||
static garray_T regstack = {0, 0, 0, 0, NULL};
|
||||
static garray_T backpos = {0, 0, 0, 0, NULL};
|
||||
static garray_T regstack = GA_EMPTY_INIT_VALUE;
|
||||
static garray_T backpos = GA_EMPTY_INIT_VALUE;
|
||||
|
||||
/*
|
||||
* Both for regstack and backpos tables we use the following strategy of
|
||||
@@ -3319,13 +3319,13 @@ static long bt_regexec_both(char_u *line,
|
||||
* onto the regstack. */
|
||||
ga_init(®stack, 1, REGSTACK_INITIAL);
|
||||
ga_grow(®stack, REGSTACK_INITIAL);
|
||||
regstack.ga_growsize = REGSTACK_INITIAL * 8;
|
||||
ga_set_growsize(®stack, REGSTACK_INITIAL * 8);
|
||||
}
|
||||
|
||||
if (backpos.ga_data == NULL) {
|
||||
ga_init(&backpos, sizeof(backpos_T), BACKPOS_INITIAL);
|
||||
ga_grow(&backpos, BACKPOS_INITIAL);
|
||||
backpos.ga_growsize = BACKPOS_INITIAL * 8;
|
||||
ga_set_growsize(&backpos, BACKPOS_INITIAL * 8);
|
||||
}
|
||||
|
||||
if (REG_MULTI) {
|
||||
|
Reference in New Issue
Block a user