mirror of
https://github.com/vim/vim.git
synced 2025-07-26 11:04:33 -04:00
patch 8.2.2600: Vim9: crash when putting an unknown type in a dictionary
Problem: Vim9: crash when putting an unknown type in a dictionary. (Yegappan Lakshmanan) Solution: Handle a NULL type pointer.
This commit is contained in:
parent
edba70703b
commit
93e1cae739
@ -340,6 +340,26 @@ def Test_extend_list_item_type()
|
||||
CheckScriptFailure(['vim9script'] + lines, 'E1012:', 1)
|
||||
enddef
|
||||
|
||||
def Test_extend_with_error_function()
|
||||
var lines =<< trim END
|
||||
vim9script
|
||||
def F()
|
||||
{
|
||||
var m = 10
|
||||
}
|
||||
echo m
|
||||
enddef
|
||||
|
||||
def Test()
|
||||
var d: dict<any> = {}
|
||||
d->extend({A: 10, Func: function('F', [])})
|
||||
enddef
|
||||
|
||||
Test()
|
||||
END
|
||||
CheckScriptFailure(lines, 'E1001: Variable not found: m')
|
||||
enddef
|
||||
|
||||
def Test_job_info_return_type()
|
||||
if has('job')
|
||||
job_start(&shell)
|
||||
|
@ -750,6 +750,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
2600,
|
||||
/**/
|
||||
2599,
|
||||
/**/
|
||||
|
@ -919,6 +919,8 @@ equal_type(type_T *type1, type_T *type2)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (type1 == NULL || type2 == NULL)
|
||||
return FALSE;
|
||||
if (type1->tt_type != type2->tt_type)
|
||||
return FALSE;
|
||||
switch (type1->tt_type)
|
||||
@ -969,12 +971,12 @@ common_type(type_T *type1, type_T *type2, type_T **dest, garray_T *type_gap)
|
||||
|
||||
// If either is VAR_UNKNOWN use the other type. An empty list/dict has no
|
||||
// specific type.
|
||||
if (type1->tt_type == VAR_UNKNOWN)
|
||||
if (type1 == NULL || type1->tt_type == VAR_UNKNOWN)
|
||||
{
|
||||
*dest = type2;
|
||||
return;
|
||||
}
|
||||
if (type2->tt_type == VAR_UNKNOWN)
|
||||
if (type2 == NULL || type2->tt_type == VAR_UNKNOWN)
|
||||
{
|
||||
*dest = type1;
|
||||
return;
|
||||
|
Loading…
x
Reference in New Issue
Block a user