diff options
author | dgp <dgp@users.sourceforge.net> | 2007-06-27 17:29:20 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2007-06-27 17:29:20 (GMT) |
commit | e03ab536a8acc7cb7d240c3a54ea78eb1d596d35 (patch) | |
tree | dc54a77e597ad6a8cdc37faa23c9ba1a796d2660 /generic/tclCmdMZ.c | |
parent | 5ca29050c7eb4e25cdae6a2d6f9b197e3f32a1b5 (diff) | |
download | tcl-e03ab536a8acc7cb7d240c3a54ea78eb1d596d35.zip tcl-e03ab536a8acc7cb7d240c3a54ea78eb1d596d35.tar.gz tcl-e03ab536a8acc7cb7d240c3a54ea78eb1d596d35.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.c | 8 |
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); |