From 7aca5ca6763e50d2c23953b20e30fca7457c9abf Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Mon, 7 Feb 2022 19:56:43 +0000 Subject: 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) --- src/eval.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/eval.c') diff --git a/src/eval.c b/src/eval.c index 7ab05be122..2942d0fe1d 100644 --- a/src/eval.c +++ b/src/eval.c @@ -4526,6 +4526,9 @@ partial_free(partial_T *pt) // "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) -- cgit v1.2.3