summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authoreban <eban@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-10-10 08:30:52 +0000
committereban <eban@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-10-10 08:30:52 +0000
commit129d05ae8d727952c01a6de74682630f3dc009ba (patch)
treece1c4c64c85534a5e65bf11de4f125e9d7b5dc54 /ext
parent99ebeaee0a6acb48a5c65618aecdecb3bbfaabbc (diff)
* ext/tcltklib/stubs.c (ruby_tcltk_stubs): fix memory leak.
[ruby-dev:18478] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2950 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext')
-rw-r--r--ext/tcltklib/stubs.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/ext/tcltklib/stubs.c b/ext/tcltklib/stubs.c
index 0c9e987..9709aca 100644
--- a/ext/tcltklib/stubs.c
+++ b/ext/tcltklib/stubs.c
@@ -34,8 +34,8 @@ ruby_tcltk_stubs()
int (*p_Tk_Init) _((Tcl_Interp *));
Tcl_Interp *tcl_ip;
int n;
- char *ruby_tcl_dll;
- char *ruby_tk_dll;
+ char *ruby_tcl_dll = 0;
+ char *ruby_tk_dll = 0;
char tcl_name[20];
char tk_name[20];
@@ -47,9 +47,6 @@ ruby_tcltk_stubs()
if (ruby_tcl_dll && ruby_tk_dll) {
tcl_dll = (DL_HANDLE)DL_OPEN(ruby_tcl_dll);
tk_dll = (DL_HANDLE)DL_OPEN(ruby_tk_dll);
-#if defined NT
- ruby_xfree(ruby_tcl_dll);
-#endif
} else {
snprintf(tcl_name, sizeof tcl_name, TCL_NAME, DLEXT);
snprintf(tk_name, sizeof tk_name, TK_NAME, DLEXT);
@@ -64,6 +61,10 @@ ruby_tcltk_stubs()
}
}
+#if defined NT
+ if (ruby_tcl_dll) ruby_xfree(ruby_tcl_dll);
+#endif
+
if (!tcl_dll || !tk_dll)
return -1;