From 070ac3433b0ebefd6dc6cd49707fcfa1421b9e67 Mon Sep 17 00:00:00 2001 From: Christian Brabandt Date: Thu, 9 Sep 2021 12:12:03 +0200 Subject: [PATCH] patch 8.2.3418: garbage collection while evaluating may cause trouble Problem: Garbage collection while evaluating may cause trouble. Solution: Disable garbage collection while evaluating an expression. (Christian Brabandt, issue #8848) --- src/eval.c | 3 +++ src/version.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/src/eval.c b/src/eval.c index 6b3d78aa6e..aceba5e2d7 100644 --- a/src/eval.c +++ b/src/eval.c @@ -561,16 +561,19 @@ eval_to_string_safe( char_u *retval; funccal_entry_T funccal_entry; int save_sc_version = current_sctx.sc_version; + int save_garbage = may_garbage_collect; current_sctx.sc_version = 1; save_funccal(&funccal_entry); if (use_sandbox) ++sandbox; ++textwinlock; + may_garbage_collect = FALSE; retval = eval_to_string(arg, FALSE); if (use_sandbox) --sandbox; --textwinlock; + may_garbage_collect = save_garbage; restore_funccal(); current_sctx.sc_version = save_sc_version; return retval; diff --git a/src/version.c b/src/version.c index 41b79a713b..b6216e98b9 100644 --- a/src/version.c +++ b/src/version.c @@ -755,6 +755,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 3418, /**/ 3417, /**/