summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--generic/tclProc.c7
2 files changed, 13 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 7794884..b4d5502 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2011-08-01 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclProc.c (TclProcCompileProc): fix for leak of
+ resolveInfo when recompiling procs, [Bug 3383616]. Thx go to
+ Gustaf Neumann for detecting the bug and providing the fix.
+
2011-08-01 Donal K. Fellows <dkf@users.sf.net>
* doc/tclvars.n (EXAMPLES): Added some examples of how some of the
diff --git a/generic/tclProc.c b/generic/tclProc.c
index a2de765..48f472f 100644
--- a/generic/tclProc.c
+++ b/generic/tclProc.c
@@ -2063,6 +2063,13 @@ TclProcCompileProc(
CompiledLocal *toFree = clPtr;
clPtr = clPtr->nextPtr;
+ if (toFree->resolveInfo) {
+ if (toFree->resolveInfo->deleteProc) {
+ toFree->resolveInfo->deleteProc(toFree->resolveInfo);
+ } else {
+ ckfree(toFree->resolveInfo);
+ }
+ }
ckfree(toFree);
}
procPtr->numCompiledLocals = procPtr->numArgs;