diff options
| author | nijtmans@users.sourceforge.net <jan.nijtmans> | 2013-02-19 11:36:12 (GMT) |
|---|---|---|
| committer | nijtmans@users.sourceforge.net <jan.nijtmans> | 2013-02-19 11:36:12 (GMT) |
| commit | fde24af5a6823086112885e7b5dfaf0da153b354 (patch) | |
| tree | 0b4fe40c61217c72dd682087696ae4a1236f9ff7 /generic/tclTrace.c | |
| parent | 33bea9773fb937ed637a72fbd2f0bbae4735af49 (diff) | |
| parent | 1d2553af513f0eb6dd5e0f30dbedc900a5ff8dfc (diff) | |
| download | tcl-fde24af5a6823086112885e7b5dfaf0da153b354.zip tcl-fde24af5a6823086112885e7b5dfaf0da153b354.tar.gz tcl-fde24af5a6823086112885e7b5dfaf0da153b354.tar.bz2 | |
Fix bug #2438181: Incorrect error reporting in traces.
Test-case and fix provided by Poor Yorick.
Diffstat (limited to 'generic/tclTrace.c')
| -rw-r--r-- | generic/tclTrace.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/generic/tclTrace.c b/generic/tclTrace.c index 0f297a4..d7430ca 100644 --- a/generic/tclTrace.c +++ b/generic/tclTrace.c @@ -1485,7 +1485,11 @@ TclCheckExecutionTraces( } iPtr->activeCmdTracePtr = active.nextPtr; if (state) { - Tcl_RestoreInterpState(interp, state); + if (traceCode == TCL_OK) { + (void) Tcl_RestoreInterpState(interp, state); + } else { + Tcl_DiscardInterpState(state); + } } return traceCode; |
