summaryrefslogtreecommitdiffstats
path: root/generic/tclCmdMZ.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2007-06-27 17:29:20 (GMT)
committerdgp <dgp@users.sourceforge.net>2007-06-27 17:29:20 (GMT)
commit508902e0fee4e8981302823b171f4fb6ddb7f50d (patch)
treedc54a77e597ad6a8cdc37faa23c9ba1a796d2660 /generic/tclCmdMZ.c
parenta384f578db158e03a8216ded58a85f751f9bc2a4 (diff)
downloadtcl-508902e0fee4e8981302823b171f4fb6ddb7f50d.zip
tcl-508902e0fee4e8981302823b171f4fb6ddb7f50d.tar.gz
tcl-508902e0fee4e8981302823b171f4fb6ddb7f50d.tar.bz2
* generic/tclCmdMZ.c: Corrected broken trace reversal logic in
* generic/tclTest.c: TclCheckInterpTraces that led to infinite loop * tests/basic.test: when multiple Tcl_CreateTrace traces were set and one of them did not fire due to level restrictions. [Bug 1743931].
Diffstat (limited to 'generic/tclCmdMZ.c')
-rw-r--r--generic/tclCmdMZ.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/generic/tclCmdMZ.c b/generic/tclCmdMZ.c
index b663f16..9114e50 100644
--- a/generic/tclCmdMZ.c
+++ b/generic/tclCmdMZ.c
@@ -14,7 +14,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclCmdMZ.c,v 1.82.2.28 2007/05/10 18:23:58 dgp Exp $
+ * RCS: @(#) $Id: tclCmdMZ.c,v 1.82.2.29 2007/06/27 17:29:22 dgp Exp $
*/
#include "tclInt.h"
@@ -4445,6 +4445,9 @@ TclCheckInterpTraces(interp, command, numChars, cmdPtr, code,
active.nextTracePtr = tracePtr;
tracePtr = tracePtr->nextPtr;
}
+ if (active.nextTracePtr) {
+ lastTracePtr = active.nextTracePtr->nextPtr;
+ }
} else {
active.reverseScan = 0;
active.nextTracePtr = tracePtr->nextPtr;
@@ -4491,9 +4494,6 @@ TclCheckInterpTraces(interp, command, numChars, cmdPtr, code,
tracePtr->flags &= ~TCL_TRACE_EXEC_IN_PROGRESS;
Tcl_Release((ClientData) tracePtr);
}
- if (active.nextTracePtr) {
- lastTracePtr = active.nextTracePtr->nextPtr;
- }
}
iPtr->activeInterpTracePtr = active.nextPtr;
return(traceCode);