summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Brabandt <cb@256bit.org>2021-09-09 12:12:03 +0200
committerBram Moolenaar <Bram@vim.org>2021-09-09 12:12:03 +0200
commit070ac3433b0ebefd6dc6cd49707fcfa1421b9e67 (patch)
tree025290f8278a526d4842fbf6ceabbe20a927c41c
parent072f1c68884a1e2d468a0f39e27fc28168fb4b03 (diff)
downloadvim-git-070ac3433b0ebefd6dc6cd49707fcfa1421b9e67.tar.gz
patch 8.2.3418: garbage collection while evaluating may cause troublev8.2.3418
Problem: Garbage collection while evaluating may cause trouble. Solution: Disable garbage collection while evaluating an expression. (Christian Brabandt, issue #8848)
-rw-r--r--src/eval.c3
-rw-r--r--src/version.c2
2 files changed, 5 insertions, 0 deletions
diff --git a/src/eval.c b/src/eval.c
index 6b3d78aa6..aceba5e2d 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 41b79a713..b6216e98b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -756,6 +756,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3418,
+/**/
3417,
/**/
3416,