summaryrefslogtreecommitdiff
path: root/src/misc2.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/misc2.c')
-rw-r--r--src/misc2.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/misc2.c b/src/misc2.c
index 53469a261..f44c33cea 100644
--- a/src/misc2.c
+++ b/src/misc2.c
@@ -1217,16 +1217,20 @@ free_all_mem(void)
if (delete_first_msg() == FAIL)
break;
-# ifdef FEAT_EVAL
- eval_clear();
-# endif
# ifdef FEAT_JOB_CHANNEL
channel_free_all();
- job_free_all();
# endif
#ifdef FEAT_TIMERS
timer_free_all();
#endif
+# ifdef FEAT_EVAL
+ /* must be after channel_free_all() with unrefs partials */
+ eval_clear();
+# endif
+# ifdef FEAT_JOB_CHANNEL
+ /* must be after eval_clear() with unrefs jobs */
+ job_free_all();
+# endif
free_termoptions();