summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-12-05 11:36:23 +0000
committerBram Moolenaar <Bram@vim.org>2021-12-05 11:36:23 +0000
commitc7269f862748c3b0f56b5a651019e18c7d5190ee (patch)
tree09680ace5adda3503ae6589ebcf1b26947f36194
parentdea4a616376c6500894c16e26057ce16d7ef9f0e (diff)
downloadvim-git-c7269f862748c3b0f56b5a651019e18c7d5190ee.tar.gz
patch 8.2.3740: memory left allocated on exit when using Tclv8.2.3740
Problem: Memory left allocated on exit when using Tcl. Solution: Call Tcl_Finalize().
-rw-r--r--src/alloc.c3
-rw-r--r--src/if_tcl.c8
-rw-r--r--src/proto/if_tcl.pro1
-rw-r--r--src/version.c2
4 files changed, 14 insertions, 0 deletions
diff --git a/src/alloc.c b/src/alloc.c
index 38b452cbe..84a1124f3 100644
--- a/src/alloc.c
+++ b/src/alloc.c
@@ -574,6 +574,9 @@ free_all_mem(void)
# ifdef FEAT_GUI_GTK
gui_mch_free_all();
# endif
+# ifdef FEAT_TCL
+ vim_tcl_finalize();
+# endif
clear_hl_tables();
vim_free(IObuff);
diff --git a/src/if_tcl.c b/src/if_tcl.c
index f3f4b0798..4838e3197 100644
--- a/src/if_tcl.c
+++ b/src/if_tcl.c
@@ -248,6 +248,14 @@ 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;
diff --git a/src/proto/if_tcl.pro b/src/proto/if_tcl.pro
index b572fb84c..11ca7a20e 100644
--- a/src/proto/if_tcl.pro
+++ b/src/proto/if_tcl.pro
@@ -1,5 +1,6 @@
/* if_tcl.c */
void vim_tcl_init(char *arg);
+void vim_tcl_finalize(void);
int tcl_enabled(int verbose);
void tcl_end(void);
void ex_tcl(exarg_T *eap);
diff --git a/src/version.c b/src/version.c
index 338b8a4ad..6e1e30aa9 100644
--- a/src/version.c
+++ b/src/version.c
@@ -754,6 +754,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3740,
+/**/
3739,
/**/
3738,