summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-04-27 23:39:30 +0200
committerBram Moolenaar <Bram@vim.org>2020-04-27 23:39:30 +0200
commit03afdcf1f449d23c9b6bc56d8b61f31dd4e11836 (patch)
treed3ff3065c2501c7d38744725b56967ee03e05479
parent909ed7e902d97054262fb55b28f5e855428ab7fe (diff)
patch 8.2.0653: using uninitialized pointerv8.2.0653
Problem: using uninitialized pointer. Solution: Move assignment up. (John Marriott)
-rw-r--r--src/testdir/test_vim9_script.vim32
-rw-r--r--src/userfunc.c2
-rw-r--r--src/version.c2
3 files changed, 18 insertions, 18 deletions
diff --git a/src/testdir/test_vim9_script.vim b/src/testdir/test_vim9_script.vim
index 0ab170ef12..4c821ec513 100644
--- a/src/testdir/test_vim9_script.vim
+++ b/src/testdir/test_vim9_script.vim
@@ -707,8 +707,7 @@ def Test_vim9script_reload_import()
return valtwo
enddef
END
- writefile(lines + morelines,
- 'Xreload.vim')
+ writefile(lines + morelines, 'Xreload.vim')
source Xreload.vim
source Xreload.vim
source Xreload.vim
@@ -724,10 +723,9 @@ def Test_vim9script_reload_import()
writefile(testlines, 'Ximport.vim')
source Ximport.vim
- " test that when not using "morelines" valtwo is still defined
- " need to source Xreload.vim again, import doesn't reload a script
+ " Test that when not using "morelines" GetValtwo() and valtwo are still
+ " defined, because import doesn't reload a script.
writefile(lines, 'Xreload.vim')
- source Xreload.vim
source Ximport.vim
" cannot declare a var twice
@@ -750,36 +748,36 @@ def Test_vim9script_reload_delfunc()
return 'yes'
enddef
END
- let middle_lines =<< trim END
+ let withno_lines =<< trim END
def FuncNo(): string
return 'no'
enddef
+ def g:DoCheck(no_exists: bool)
+ assert_equal('yes', FuncYes())
+ assert_equal('no', FuncNo())
+ enddef
END
- let final_lines =<< trim END
+ let nono_lines =<< trim END
def g:DoCheck(no_exists: bool)
assert_equal('yes', FuncYes())
- if no_exists
- assert_equal('no', FuncNo())
- else
- assert_fails('call FuncNo()', 'E117:')
- endif
+ assert_fails('call FuncNo()', 'E117:')
enddef
END
# FuncNo() is defined
- writefile(first_lines + middle_lines + final_lines, 'Xreloaded.vim')
+ writefile(first_lines + withno_lines, 'Xreloaded.vim')
source Xreloaded.vim
g:DoCheck(true)
# FuncNo() is not redefined
- writefile(first_lines + final_lines, 'Xreloaded.vim')
+ writefile(first_lines + nono_lines, 'Xreloaded.vim')
source Xreloaded.vim
- g:DoCheck(false)
+ g:DoCheck()
# FuncNo() is back
- writefile(first_lines + middle_lines + final_lines, 'Xreloaded.vim')
+ writefile(first_lines + withno_lines, 'Xreloaded.vim')
source Xreloaded.vim
- g:DoCheck(true)
+ g:DoCheck()
delete('Xreloaded.vim')
enddef
diff --git a/src/userfunc.c b/src/userfunc.c
index 86dea795cf..708b4523b3 100644
--- a/src/userfunc.c
+++ b/src/userfunc.c
@@ -1599,9 +1599,9 @@ delete_script_functions(int sid)
for (hi = func_hashtab.ht_array; todo > 0; ++hi)
if (!HASHITEM_EMPTY(hi))
{
+ fp = HI2UF(hi);
if (STRNCMP(fp->uf_name, buf, len) == 0)
{
- fp = HI2UF(hi);
fp->uf_flags |= FC_DEAD;
func_clear(fp, TRUE);
}
diff --git a/src/version.c b/src/version.c
index f9951e9366..9bee5136b1 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 653,
+/**/
652,
/**/
651,