mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 8.2.2549: crash after using "g:" in a for loop
Problem: Crash after using "g:" in a for loop. Solution: Increment the reference count. (closes #7892)
This commit is contained in:
@@ -2545,6 +2545,12 @@ def Test_expr7_namespace()
|
||||
assert_equal('some', get(t:, 'some_var', 'xxx'))
|
||||
assert_equal('xxx', get(t:, 'no_var', 'xxx'))
|
||||
unlet t:some_var
|
||||
|
||||
# check using g: in a for loop more than DO_NOT_FREE_CNT times
|
||||
for i in range(100000)
|
||||
if has_key(g:, 'does-not-exist')
|
||||
endif
|
||||
endfor
|
||||
enddef
|
||||
|
||||
def Test_expr7_parens()
|
||||
|
@@ -750,6 +750,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
2549,
|
||||
/**/
|
||||
2548,
|
||||
/**/
|
||||
|
@@ -1771,6 +1771,7 @@ call_def_function(
|
||||
tv->v_type = VAR_DICT;
|
||||
tv->v_lock = 0;
|
||||
tv->vval.v_dict = d;
|
||||
++d->dv_refcount;
|
||||
++ectx.ec_stack.ga_len;
|
||||
}
|
||||
break;
|
||||
|
Reference in New Issue
Block a user