patch 8.2.4322: Vim9: crash when using funcref with closure
Problem: Vim9: crash when using funcref with closure.
Solution: Keep a reference to the funcref that has the outer context.
(closes #9716)
diff --git a/src/eval.c b/src/eval.c
index 7ab05be..2942d0f 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -4526,6 +4526,9 @@
// "out_up" is no longer used, decrement refcount on partial that owns it.
partial_unref(pt->pt_outer.out_up_partial);
+ // Using pt_outer from another partial.
+ partial_unref(pt->pt_outer_partial);
+
// Decrease the reference count for the context of a closure. If down
// to the minimum it may be time to free it.
if (pt->pt_funcstack != NULL)