summaryrefslogtreecommitdiff
path: root/src/vim9type.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/vim9type.c')
-rw-r--r--src/vim9type.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/vim9type.c b/src/vim9type.c
index f36fa5eea..5d37ac5dc 100644
--- a/src/vim9type.c
+++ b/src/vim9type.c
@@ -403,7 +403,8 @@ typval2type_int(typval_T *tv, int copyID, garray_T *type_gap, int flags)
if (l->lv_type != NULL && (l->lv_first == NULL
|| (flags & TVTT_MORE_SPECIFIC) == 0
|| l->lv_type->tt_member != &t_any))
- return l->lv_type;
+ // make a copy, lv_type may be freed if the list is freed
+ return copy_type(l->lv_type, type_gap);
if (l->lv_first == &range_list_item)
return &t_list_number;
if (l->lv_copyID == copyID)