diff options
author | dgp <dgp@noemail.net> | 2007-06-27 18:21:52 (GMT) |
---|---|---|
committer | dgp <dgp@noemail.net> | 2007-06-27 18:21:52 (GMT) |
commit | 012fb1955c6a153afcd5a9fa63cf2ccc0173f80d (patch) | |
tree | ab1c0c3edd37a49f30dbb627b0eac08a8d9cebce /generic/tclTrace.c | |
parent | f299a0f10c2fa1a7613bc1750a59bcc9b422cad6 (diff) | |
download | tcl-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.c | 8 |
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) { |