summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-01-17 21:34:38 +0000
committerBram Moolenaar <Bram@vim.org>2022-01-17 21:34:38 +0000
commitafa76e1cf2e7e1f9e1097e345a4272e9ddbf14ad (patch)
tree91f2db425f26ca3daaee7ab960a61a96f0795007
parentb3d9ceed2bc96acb7a2388e138559df6282118af (diff)
patch 8.2.4126: crash on exit when built with dynamic Tclv8.2.4126
Problem: Crash on exit when built with dynamic Tcl and EXITFREE is defined. (Dominique Pellé) Solution: Only call Tcl_Finalize() when initialized. (closes #9546)
-rw-r--r--src/if_tcl.c19
-rw-r--r--src/version.c2
2 files changed, 13 insertions, 8 deletions
diff --git a/src/if_tcl.c b/src/if_tcl.c
index 75f904a9ef..f66bfd3860 100644
--- a/src/if_tcl.c
+++ b/src/if_tcl.c
@@ -248,14 +248,6 @@ vim_tcl_init(char *arg)
#endif
}
-#if defined(EXITFREE) || defined(PROTO)
- void
-vim_tcl_finalize(void)
-{
- Tcl_Finalize();
-}
-#endif
-
#if defined(DYNAMIC_TCL) || defined(PROTO)
static int stubs_initialized = FALSE;
@@ -287,6 +279,17 @@ tcl_enabled(int verbose)
}
#endif
+#if defined(EXITFREE) || defined(PROTO)
+ void
+vim_tcl_finalize(void)
+{
+# ifdef DYNAMIC_TCL
+ if (stubs_initialized)
+# endif
+ Tcl_Finalize();
+}
+#endif
+
void
tcl_end(void)
{
diff --git a/src/version.c b/src/version.c
index 735b8f6f81..6fb6181da2 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 4126,
+/**/
4125,
/**/
4124,