Mercurial > vim
changeset 20021:4895e5cf1746 v8.2.0566
patch 8.2.0566: Vim9: variable can be used uninitialized
Commit: https://github.com/vim/vim/commit/1a2f4bf6c80d750615f19c34e5baddd21310c9c9
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Apr 12 23:09:25 2020 +0200
patch 8.2.0566: Vim9: variable can be used uninitialized
Problem: Vim9: variable can be used uninitialized.
Solution: Jump to after where variable is used.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 12 Apr 2020 23:15:03 +0200 |
parents | 3f5745e289ec |
children | fb9a66d81a39 |
files | src/version.c src/vim9execute.c |
diffstat | 2 files changed, 4 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/version.c +++ b/src/version.c @@ -739,6 +739,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 566, +/**/ 565, /**/ 564,
--- a/src/vim9execute.c +++ b/src/vim9execute.c @@ -524,7 +524,7 @@ call_def_function( else argc -= vararg_count; if (exe_newlist(vararg_count, &ectx) == FAIL) - goto failed; + goto failed_early; if (defcount > 0) // Move varargs list to below missing default arguments. *STACK_TV_BOT(defcount- 1) = *STACK_TV_BOT(-1); @@ -1773,7 +1773,7 @@ failed: // When failed need to unwind the call stack. while (ectx.ec_frame != initial_frame_ptr) func_return(&ectx); - +failed_early: for (idx = 0; idx < ectx.ec_stack.ga_len; ++idx) clear_tv(STACK_TV(idx)); vim_free(ectx.ec_stack.ga_data);