diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2019-05-22 01:02:26 +0200 |
---|---|---|
committer | Justin M. Keyes <justinkz@gmail.com> | 2019-05-25 10:07:05 +0200 |
commit | ae846b41dfed16446be6469cb01f12f1eb1fa534 (patch) | |
tree | 2851845f2faf61d5945cb4f1d8761316201a6246 /src/nvim/syntax.c | |
parent | a9d7ec4587d8eb20f12ebecc427ad818fb0e4971 (diff) | |
download | rneovim-ae846b41dfed16446be6469cb01f12f1eb1fa534.tar.gz rneovim-ae846b41dfed16446be6469cb01f12f1eb1fa534.tar.bz2 rneovim-ae846b41dfed16446be6469cb01f12f1eb1fa534.zip |
vim-patch:8.0.1496: VIM_CLEAR()
Problem: Clearing a pointer takes two lines.
Solution: Add VIM_CLEAR() and replace vim_clear(). (Hirohito Higashi,
closes #2629)
vim-patch:8.0.1481
Diffstat (limited to 'src/nvim/syntax.c')
-rw-r--r-- | src/nvim/syntax.c | 27 |
1 files changed, 10 insertions, 17 deletions
diff --git a/src/nvim/syntax.c b/src/nvim/syntax.c index 1b30161e94..461316e63d 100644 --- a/src/nvim/syntax.c +++ b/src/nvim/syntax.c @@ -992,10 +992,10 @@ static void syn_stack_free_block(synblock_T *block) synstate_T *p; if (block->b_sst_array != NULL) { - for (p = block->b_sst_first; p != NULL; p = p->sst_next) + for (p = block->b_sst_first; p != NULL; p = p->sst_next) { clear_syn_state(p); - xfree(block->b_sst_array); - block->b_sst_array = NULL; + } + XFREE_CLEAR(block->b_sst_array); block->b_sst_len = 0; } } @@ -3186,8 +3186,7 @@ void syntax_clear(synblock_T *block) vim_regfree(block->b_syn_linecont_prog); block->b_syn_linecont_prog = NULL; - xfree(block->b_syn_linecont_pat); - block->b_syn_linecont_pat = NULL; + XFREE_CLEAR(block->b_syn_linecont_pat); block->b_syn_folditems = 0; clear_string_option(&block->b_syn_isk); @@ -3230,8 +3229,7 @@ static void syntax_sync_clear(void) vim_regfree(curwin->w_s->b_syn_linecont_prog); curwin->w_s->b_syn_linecont_prog = NULL; - xfree(curwin->w_s->b_syn_linecont_pat); - curwin->w_s->b_syn_linecont_pat = NULL; + XFREE_CLEAR(curwin->w_s->b_syn_linecont_pat); clear_string_option(&curwin->w_s->b_syn_isk); syn_stack_free_all(curwin->w_s); /* Need to recompute all syntax. */ @@ -3331,8 +3329,7 @@ static void syn_cmd_clear(exarg_T *eap, int syncing) // and make it empty. int scl_id = id - SYNID_CLUSTER; - xfree(SYN_CLSTR(curwin->w_s)[scl_id].scl_list); - SYN_CLSTR(curwin->w_s)[scl_id].scl_list = NULL; + XFREE_CLEAR(SYN_CLSTR(curwin->w_s)[scl_id].scl_list); } } else { id = syn_namen2id(arg, (int)(arg_end - arg)); @@ -5160,8 +5157,7 @@ static void syn_cmd_sync(exarg_T *eap, int syncing) syn_clear_time(&curwin->w_s->b_syn_linecont_time); if (curwin->w_s->b_syn_linecont_prog == NULL) { - xfree(curwin->w_s->b_syn_linecont_pat); - curwin->w_s->b_syn_linecont_pat = NULL; + XFREE_CLEAR(curwin->w_s->b_syn_linecont_pat); finished = TRUE; break; } @@ -6993,12 +6989,9 @@ static void highlight_clear(int idx) HL_TABLE()[idx].sg_rgb_fg = -1; HL_TABLE()[idx].sg_rgb_bg = -1; HL_TABLE()[idx].sg_rgb_sp = -1; - xfree(HL_TABLE()[idx].sg_rgb_fg_name); - HL_TABLE()[idx].sg_rgb_fg_name = NULL; - xfree(HL_TABLE()[idx].sg_rgb_bg_name); - HL_TABLE()[idx].sg_rgb_bg_name = NULL; - xfree(HL_TABLE()[idx].sg_rgb_sp_name); - HL_TABLE()[idx].sg_rgb_sp_name = NULL; + XFREE_CLEAR(HL_TABLE()[idx].sg_rgb_fg_name); + XFREE_CLEAR(HL_TABLE()[idx].sg_rgb_bg_name); + XFREE_CLEAR(HL_TABLE()[idx].sg_rgb_sp_name); // Clear the script ID only when there is no link, since that is not // cleared. if (HL_TABLE()[idx].sg_link == 0) { |