diff options
| author | dkf <donal.k.fellows@manchester.ac.uk> | 2012-06-16 17:20:06 (GMT) |
|---|---|---|
| committer | dkf <donal.k.fellows@manchester.ac.uk> | 2012-06-16 17:20:06 (GMT) |
| commit | 0f82494d95766fca811ff7df84d03b1949f2afa1 (patch) | |
| tree | b6126422cb910158f02508f907fc4a3380dfd5a3 /generic/tclBasic.c | |
| parent | d893a31f9f960d1906332988842de1b8bd0c4f5c (diff) | |
| parent | bccf168ae55a2c314248ee8e3a2369efba47f317 (diff) | |
| download | tcl-0f82494d95766fca811ff7df84d03b1949f2afa1.zip tcl-0f82494d95766fca811ff7df84d03b1949f2afa1.tar.gz tcl-0f82494d95766fca811ff7df84d03b1949f2afa1.tar.bz2 | |
merge trunk
Diffstat (limited to 'generic/tclBasic.c')
| -rw-r--r-- | generic/tclBasic.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c index b38558a..0b02d0d 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -1555,12 +1555,16 @@ DeleteInterpProc( hPtr != NULL; hPtr = Tcl_NextHashEntry(&search)) { CmdFrame *cfPtr = Tcl_GetHashValue(hPtr); + Proc *procPtr = (Proc *) Tcl_GetHashKey(iPtr->linePBodyPtr, hPtr); - if (cfPtr->type == TCL_LOCATION_SOURCE) { - Tcl_DecrRefCount(cfPtr->data.eval.path); + procPtr->iPtr = NULL; + if (cfPtr) { + if (cfPtr->type == TCL_LOCATION_SOURCE) { + Tcl_DecrRefCount(cfPtr->data.eval.path); + } + ckfree(cfPtr->line); + ckfree(cfPtr); } - ckfree(cfPtr->line); - ckfree(cfPtr); Tcl_DeleteHashEntry(hPtr); } Tcl_DeleteHashTable(iPtr->linePBodyPtr); |
