# HG changeset patch # User Bram Moolenaar # Date 1674854103 -3600 # Node ID e16361210675fc8c9c1f583e8a9b5b379e7917ab # Parent f800c5e0c695cca1f5cb56bfa3a3197cc0a47a65 patch 9.0.1251: checking returned value of ga_grow() is inconsistent Commit: https://github.com/vim/vim/commit/fadc02a2a57755fa1342b1b44c2ceab3046125fc Author: Yegappan Lakshmanan Date: Fri Jan 27 21:03:12 2023 +0000 patch 9.0.1251: checking returned value of ga_grow() is inconsistent Problem: Checking returned value of ga_grow() is inconsistent. Solution: Check for FAIL instaed of "not OK". (Yegappan Lakshmanan, closes #11897) diff --git a/src/digraph.c b/src/digraph.c --- a/src/digraph.c +++ b/src/digraph.c @@ -1682,7 +1682,7 @@ registerdigraph(int char1, int char2, in } // Add a new digraph to the table. - if (ga_grow(&user_digraphs, 1) != OK) + if (ga_grow(&user_digraphs, 1) == FAIL) return; dp = (digr_T *)user_digraphs.ga_data + user_digraphs.ga_len; diff --git a/src/evalfunc.c b/src/evalfunc.c --- a/src/evalfunc.c +++ b/src/evalfunc.c @@ -3966,7 +3966,7 @@ execute_redir_str(char_u *value, int val len = (int)STRLEN(value); // Append the entire string else len = value_len; // Append only "value_len" characters - if (ga_grow(&redir_execute_ga, len) != OK) + if (ga_grow(&redir_execute_ga, len) == FAIL) return; mch_memmove((char *)redir_execute_ga.ga_data diff --git a/src/fold.c b/src/fold.c --- a/src/fold.c +++ b/src/fold.c @@ -645,7 +645,7 @@ foldCreate(linenr_T start, linenr_T end) i = (int)(fp - (fold_T *)gap->ga_data); } - if (ga_grow(gap, 1) != OK) + if (ga_grow(gap, 1) == FAIL) return; fp = (fold_T *)gap->ga_data + i; @@ -2884,7 +2884,7 @@ foldInsert(garray_T *gap, int i) { fold_T *fp; - if (ga_grow(gap, 1) != OK) + if (ga_grow(gap, 1) == FAIL) return FAIL; fp = (fold_T *)gap->ga_data + i; if (gap->ga_len > 0 && i < gap->ga_len) diff --git a/src/getchar.c b/src/getchar.c --- a/src/getchar.c +++ b/src/getchar.c @@ -3890,7 +3890,7 @@ getcmdkeycmd( got_int = FALSE; while (c1 != NUL && !aborted) { - if (ga_grow(&line_ga, 32) != OK) + if (ga_grow(&line_ga, 32) == FAIL) { aborted = TRUE; break; diff --git a/src/map.c b/src/map.c --- a/src/map.c +++ b/src/map.c @@ -2983,7 +2983,7 @@ langmap_set_entry(int from, int to) b = i; } - if (ga_grow(&langmap_mapga, 1) != OK) + if (ga_grow(&langmap_mapga, 1) == FAIL) return; // out of memory // insert new entry at position "a" diff --git a/src/os_win32.c b/src/os_win32.c --- a/src/os_win32.c +++ b/src/os_win32.c @@ -5725,7 +5725,7 @@ win32_build_env(dict_T *env, garray_T *g size_t lkey = wcslen(wkey); size_t lval = wcslen(wval); - if (ga_grow(gap, (int)(lkey + lval + 2)) != OK) + if (ga_grow(gap, (int)(lkey + lval + 2)) == FAIL) continue; for (n = 0; n < lkey; n++) *((WCHAR*)gap->ga_data + gap->ga_len++) = wkey[n]; diff --git a/src/scriptfile.c b/src/scriptfile.c --- a/src/scriptfile.c +++ b/src/scriptfile.c @@ -56,7 +56,7 @@ estack_push(etype_T type, char_u *name, // If memory allocation fails then we'll pop more than we push, eventually // at the top level it will be OK again. - if (ga_grow(&exestack, 1) != OK) + if (ga_grow(&exestack, 1) == FAIL) return NULL; entry = ((estack_T *)exestack.ga_data) + exestack.ga_len; diff --git a/src/spellfile.c b/src/spellfile.c --- a/src/spellfile.c +++ b/src/spellfile.c @@ -3428,7 +3428,7 @@ add_fromto( fromto_T *ftp; char_u word[MAXWLEN]; - if (ga_grow(gap, 1) != OK) + if (ga_grow(gap, 1) == FAIL) return; ftp = ((fromto_T *)gap->ga_data) + gap->ga_len; diff --git a/src/syntax.c b/src/syntax.c --- a/src/syntax.c +++ b/src/syntax.c @@ -1438,7 +1438,7 @@ load_current_state(synstate_T *from) validate_current_state(); keepend_level = -1; if (from->sst_stacksize - && ga_grow(¤t_state, from->sst_stacksize) != FAIL) + && ga_grow(¤t_state, from->sst_stacksize) == OK) { if (from->sst_stacksize > SST_FIX_STATES) bp = SYN_STATE_P(&(from->sst_union.sst_ga)); @@ -4946,7 +4946,7 @@ syn_cmd_match( set_nextcmd(eap, rest); if (!ends_excmd2(eap->cmd, rest) || eap->skip) rest = NULL; - else if (ga_grow(&curwin->w_s->b_syn_patterns, 1) != FAIL + else if (ga_grow(&curwin->w_s->b_syn_patterns, 1) == OK && (syn_id = syn_check_group(arg, (int)(group_name_end - arg))) != 0) { @@ -5186,7 +5186,7 @@ syn_cmd_region( set_nextcmd(eap, rest); if (!ends_excmd(*rest) || eap->skip) rest = NULL; - else if (ga_grow(&(curwin->w_s->b_syn_patterns), pat_count) != FAIL + else if (ga_grow(&(curwin->w_s->b_syn_patterns), pat_count) == OK && (syn_id = syn_check_group(arg, (int)(group_name_end - arg))) != 0) { diff --git a/src/tag.c b/src/tag.c --- a/src/tag.c +++ b/src/tag.c @@ -2739,7 +2739,7 @@ findtags_add_match( if (HASHITEM_EMPTY(hi)) { if (hash_add_item(&st->ht_match[mtt], hi, mfp, *hash) == FAIL - || ga_grow(&st->ga_match[mtt], 1) != OK) + || ga_grow(&st->ga_match[mtt], 1) == FAIL) { // Out of memory! Just forget about the rest. st->stop_searching = TRUE; diff --git a/src/usercmd.c b/src/usercmd.c --- a/src/usercmd.c +++ b/src/usercmd.c @@ -1058,7 +1058,7 @@ uc_add_command( // Extend the array unless we're replacing an existing command if (cmp != 0) { - if (ga_grow(gap, 1) != OK) + if (ga_grow(gap, 1) == FAIL) goto fail; if ((p = vim_strnsave(name, name_len)) == NULL) goto fail; diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -696,6 +696,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1251, +/**/ 1250, /**/ 1249,