summaryrefslogtreecommitdiffstats
path: root/generic/tclTrace.c
diff options
context:
space:
mode:
authordgp <dgp@noemail.net>2007-06-27 18:21:52 (GMT)
committerdgp <dgp@noemail.net>2007-06-27 18:21:52 (GMT)
commit012fb1955c6a153afcd5a9fa63cf2ccc0173f80d (patch)
treeab1c0c3edd37a49f30dbb627b0eac08a8d9cebce /generic/tclTrace.c
parentf299a0f10c2fa1a7613bc1750a59bcc9b422cad6 (diff)
downloadtcl-012fb1955c6a153afcd5a9fa63cf2ccc0173f80d.zip
tcl-012fb1955c6a153afcd5a9fa63cf2ccc0173f80d.tar.gz
tcl-012fb1955c6a153afcd5a9fa63cf2ccc0173f80d.tar.bz2
* generic/tclTrace.c: Corrected broken trace reversal logic in
* generic/tclTest.c: TclCheckInterpTraces that led to infinite loop * tests/trace.test: when multiple Tcl_CreateTrace traces were set and one of them did not fire due to level restrictions. [Bug 1743931]. FossilOrigin-Name: 73868a81de5be2a9df62e4334f190fcabccbca16
Diffstat (limited to 'generic/tclTrace.c')
-rw-r--r--generic/tclTrace.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/generic/tclTrace.c b/generic/tclTrace.c
index 799a764..f4927f8 100644
--- a/generic/tclTrace.c
+++ b/generic/tclTrace.c
@@ -11,7 +11,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclTrace.c,v 1.39 2007/06/20 18:46:14 dgp Exp $
+ * RCS: @(#) $Id: tclTrace.c,v 1.40 2007/06/27 18:21:52 dgp Exp $
*/
#include "tclInt.h"
@@ -1576,6 +1576,9 @@ TclCheckInterpTraces(
active.nextTracePtr = tracePtr;
tracePtr = tracePtr->nextPtr;
}
+ if (active.nextTracePtr) {
+ lastTracePtr = active.nextTracePtr->nextPtr;
+ }
} else {
active.reverseScan = 0;
active.nextTracePtr = tracePtr->nextPtr;
@@ -1635,9 +1638,6 @@ TclCheckInterpTraces(
tracePtr->flags &= ~TCL_TRACE_EXEC_IN_PROGRESS;
Tcl_Release((ClientData) tracePtr);
}
- if (active.nextTracePtr) {
- lastTracePtr = active.nextTracePtr->nextPtr;
- }
}
iPtr->activeInterpTracePtr = active.nextPtr;
if (state) {