]> granicus.if.org Git - vim/commitdiff
patch 8.2.2579: Vim9: crash in garbagecollect after for loop v8.2.2579
authorBram Moolenaar <Bram@vim.org>
Mon, 8 Mar 2021 19:47:14 +0000 (20:47 +0100)
committerBram Moolenaar <Bram@vim.org>
Mon, 8 Mar 2021 19:47:14 +0000 (20:47 +0100)
Problem:    Vim9: crash in garbagecollect after for loop.
Solution:   Do not set a reference in script item when the name was cleared.
            (closes #7935)

src/evalvars.c
src/version.c

index 22d39a72f650cd91486791b4754ced8b28e81593..eac66b2b9216c1ca8978ed7be42f3108fb443f54 100644 (file)
@@ -319,7 +319,8 @@ garbage_collect_scriptvars(int copyID)
        {
            svar_T    *sv = ((svar_T *)si->sn_var_vals.ga_data) + idx;
 
-           abort = abort || set_ref_in_item(sv->sv_tv, copyID, NULL, NULL);
+           if (sv->sv_name != NULL)
+               abort = abort || set_ref_in_item(sv->sv_tv, copyID, NULL, NULL);
        }
     }
 
index 6c9617596bbb22eb31e6e11c9d10c8fe4083b8a6..4a4d65a21ff700f1b7e990bd2e738a0230aac471 100644 (file)
@@ -750,6 +750,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    2579,
 /**/
     2578,
 /**/