forked from aniani/vim
patch 8.2.0653: using uninitialized pointer
Problem: using uninitialized pointer. Solution: Move assignment up. (John Marriott)
This commit is contained in:
@@ -707,8 +707,7 @@ def Test_vim9script_reload_import()
|
|||||||
return valtwo
|
return valtwo
|
||||||
enddef
|
enddef
|
||||||
END
|
END
|
||||||
writefile(lines + morelines,
|
writefile(lines + morelines, 'Xreload.vim')
|
||||||
'Xreload.vim')
|
|
||||||
source Xreload.vim
|
source Xreload.vim
|
||||||
source Xreload.vim
|
source Xreload.vim
|
||||||
source Xreload.vim
|
source Xreload.vim
|
||||||
@@ -724,10 +723,9 @@ def Test_vim9script_reload_import()
|
|||||||
writefile(testlines, 'Ximport.vim')
|
writefile(testlines, 'Ximport.vim')
|
||||||
source Ximport.vim
|
source Ximport.vim
|
||||||
|
|
||||||
" test that when not using "morelines" valtwo is still defined
|
" Test that when not using "morelines" GetValtwo() and valtwo are still
|
||||||
" need to source Xreload.vim again, import doesn't reload a script
|
" defined, because import doesn't reload a script.
|
||||||
writefile(lines, 'Xreload.vim')
|
writefile(lines, 'Xreload.vim')
|
||||||
source Xreload.vim
|
|
||||||
source Ximport.vim
|
source Ximport.vim
|
||||||
|
|
||||||
" cannot declare a var twice
|
" cannot declare a var twice
|
||||||
@@ -750,36 +748,36 @@ def Test_vim9script_reload_delfunc()
|
|||||||
return 'yes'
|
return 'yes'
|
||||||
enddef
|
enddef
|
||||||
END
|
END
|
||||||
let middle_lines =<< trim END
|
let withno_lines =<< trim END
|
||||||
def FuncNo(): string
|
def FuncNo(): string
|
||||||
return 'no'
|
return 'no'
|
||||||
enddef
|
enddef
|
||||||
END
|
|
||||||
let final_lines =<< trim END
|
|
||||||
def g:DoCheck(no_exists: bool)
|
def g:DoCheck(no_exists: bool)
|
||||||
assert_equal('yes', FuncYes())
|
assert_equal('yes', FuncYes())
|
||||||
if no_exists
|
|
||||||
assert_equal('no', FuncNo())
|
assert_equal('no', FuncNo())
|
||||||
else
|
enddef
|
||||||
|
END
|
||||||
|
let nono_lines =<< trim END
|
||||||
|
def g:DoCheck(no_exists: bool)
|
||||||
|
assert_equal('yes', FuncYes())
|
||||||
assert_fails('call FuncNo()', 'E117:')
|
assert_fails('call FuncNo()', 'E117:')
|
||||||
endif
|
|
||||||
enddef
|
enddef
|
||||||
END
|
END
|
||||||
|
|
||||||
# FuncNo() is defined
|
# FuncNo() is defined
|
||||||
writefile(first_lines + middle_lines + final_lines, 'Xreloaded.vim')
|
writefile(first_lines + withno_lines, 'Xreloaded.vim')
|
||||||
source Xreloaded.vim
|
source Xreloaded.vim
|
||||||
g:DoCheck(true)
|
g:DoCheck(true)
|
||||||
|
|
||||||
# FuncNo() is not redefined
|
# FuncNo() is not redefined
|
||||||
writefile(first_lines + final_lines, 'Xreloaded.vim')
|
writefile(first_lines + nono_lines, 'Xreloaded.vim')
|
||||||
source Xreloaded.vim
|
source Xreloaded.vim
|
||||||
g:DoCheck(false)
|
g:DoCheck()
|
||||||
|
|
||||||
# FuncNo() is back
|
# FuncNo() is back
|
||||||
writefile(first_lines + middle_lines + final_lines, 'Xreloaded.vim')
|
writefile(first_lines + withno_lines, 'Xreloaded.vim')
|
||||||
source Xreloaded.vim
|
source Xreloaded.vim
|
||||||
g:DoCheck(true)
|
g:DoCheck()
|
||||||
|
|
||||||
delete('Xreloaded.vim')
|
delete('Xreloaded.vim')
|
||||||
enddef
|
enddef
|
||||||
|
@@ -1599,9 +1599,9 @@ delete_script_functions(int sid)
|
|||||||
for (hi = func_hashtab.ht_array; todo > 0; ++hi)
|
for (hi = func_hashtab.ht_array; todo > 0; ++hi)
|
||||||
if (!HASHITEM_EMPTY(hi))
|
if (!HASHITEM_EMPTY(hi))
|
||||||
{
|
{
|
||||||
|
fp = HI2UF(hi);
|
||||||
if (STRNCMP(fp->uf_name, buf, len) == 0)
|
if (STRNCMP(fp->uf_name, buf, len) == 0)
|
||||||
{
|
{
|
||||||
fp = HI2UF(hi);
|
|
||||||
fp->uf_flags |= FC_DEAD;
|
fp->uf_flags |= FC_DEAD;
|
||||||
func_clear(fp, TRUE);
|
func_clear(fp, TRUE);
|
||||||
}
|
}
|
||||||
|
@@ -746,6 +746,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
653,
|
||||||
/**/
|
/**/
|
||||||
652,
|
652,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user