patch 8.2.4126: crash on exit when built with dynamic Tcl
Problem: Crash on exit when built with dynamic Tcl and EXITFREE is defined.
(Dominique Pellé)
Solution: Only call Tcl_Finalize() when initialized. (closes #9546)
diff --git a/src/if_tcl.c b/src/if_tcl.c
index 75f904a..f66bfd3 100644
--- a/src/if_tcl.c
+++ b/src/if_tcl.c
@@ -248,14 +248,6 @@
#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 @@
}
#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)
{