From bc7ce675b2d1c9fb58c067eff3edd59abc30aba4 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Mon, 1 Aug 2016 22:49:22 +0200 Subject: patch 7.4.2143 Problem: A funccal is garbage collected while it can still be used. Solution: Set copyID in all referenced functions. Do not list lambda functions with ":function". --- 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 1adbabc08..45b8f07c3 100644 --- a/src/eval.c +++ b/src/eval.c @@ -5304,6 +5304,9 @@ garbage_collect(int testing) /* function-local variables */ abort = abort || set_ref_in_call_stack(copyID); + /* named functions (matters for closures) */ + abort = abort || set_ref_in_functions(copyID); + /* function call arguments, if v:testing is set. */ abort = abort || set_ref_in_func_args(copyID); -- cgit v1.2.1