summaryrefslogtreecommitdiffstats
path: root/generic/tclProc.c
diff options
context:
space:
mode:
authormig <mig@noemail.net>2011-08-01 17:15:19 (GMT)
committermig <mig@noemail.net>2011-08-01 17:15:19 (GMT)
commit66d62040dc62acfe98a759f42f1d49e8c48098bd (patch)
tree8f01d54611133845b2680006211754b6c63c5e0a /generic/tclProc.c
parentd54ddc34c745bc551190af86f2e7e19e54e2014b (diff)
downloadtcl-66d62040dc62acfe98a759f42f1d49e8c48098bd.zip
tcl-66d62040dc62acfe98a759f42f1d49e8c48098bd.tar.gz
tcl-66d62040dc62acfe98a759f42f1d49e8c48098bd.tar.bz2
* 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.
FossilOrigin-Name: 5a334ac208171bb51cb237bff76aa328aace4ac0
Diffstat (limited to 'generic/tclProc.c')
-rw-r--r--generic/tclProc.c7
1 files changed, 7 insertions, 0 deletions
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;