summaryrefslogtreecommitdiffstats
path: root/generic/tclBasic.c
diff options
context:
space:
mode:
authorjan.nijtmans <nijtmans@users.sourceforge.net>2021-04-07 10:22:09 (GMT)
committerjan.nijtmans <nijtmans@users.sourceforge.net>2021-04-07 10:22:09 (GMT)
commita01643e73b5c590d77038e45206e8ee124a75dec (patch)
tree345ba78287d3a5939c0863554b3ebb1144b5538d /generic/tclBasic.c
parent52005c65befb5b8e6ebfdf0076ce6721d75ec145 (diff)
parent06813163a831a73bcdd74a5341bbc547fbb3e342 (diff)
downloadtcl-a01643e73b5c590d77038e45206e8ee124a75dec.zip
tcl-a01643e73b5c590d77038e45206e8ee124a75dec.tar.gz
tcl-a01643e73b5c590d77038e45206e8ee124a75dec.tar.bz2
Merge 8.7
Diffstat (limited to 'generic/tclBasic.c')
-rw-r--r--generic/tclBasic.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index b90e12d..911469b 100644
--- a/generic/tclBasic.c
+++ b/generic/tclBasic.c
@@ -3435,6 +3435,8 @@ Tcl_DeleteCommandFromToken(
if (cmdPtr->tracePtr != NULL) {
CommandTrace *tracePtr;
+ /* Note that CallCommandTraces() never frees cmdPtr, that's
+ * done just before Tcl_DeleteCommandFromToken() returns */
CallCommandTraces(iPtr,cmdPtr,NULL,NULL,TCL_TRACE_DELETE);
/*
@@ -3663,6 +3665,8 @@ CallCommandTraces(
cmdPtr->flags &= ~CMD_TRACE_ACTIVE;
cmdPtr->refCount--;
+ /* Don't free cmdPtr here, since the caller of CallCommandTraces()
+ * is responsible for that. See Tcl_DeleteCommandFromToken() */
iPtr->activeCmdTracePtr = active.nextPtr;
Tcl_Release(iPtr);
return result;