summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2014-07-17 04:24:23 (GMT)
committerdgp <dgp@users.sourceforge.net>2014-07-17 04:24:23 (GMT)
commitf6c6b8c696a065866d6d0a7e6b844cda57916322 (patch)
treee552376ea5d7e33936f845c257127b26092f819d
parentc0f4026d88454c1460a3b0905cb41ee61a16ad1a (diff)
downloadtcl-f6c6b8c696a065866d6d0a7e6b844cda57916322.zip
tcl-f6c6b8c696a065866d6d0a7e6b844cda57916322.tar.gz
tcl-f6c6b8c696a065866d6d0a7e6b844cda57916322.tar.bz2
[9969cf8ca6] Move the bailout when the ->rewind flag is set down after all
the housekeeping matters tearing down frames (trace data) is complete.
-rw-r--r--generic/tclExecute.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index 0d485c2..0cd074d 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -2204,10 +2204,6 @@ TEBCresume(
} else {
/* resume from invocation */
CACHE_STACK_INFO();
- if (iPtr->execEnvPtr->rewind) {
- result = TCL_ERROR;
- goto abnormalReturn;
- }
NRE_ASSERT(iPtr->cmdFramePtr == bcFramePtr);
if (bcFramePtr->cmdObj) {
@@ -2219,6 +2215,10 @@ TEBCresume(
if (iPtr->flags & INTERP_DEBUG_FRAME) {
TclArgumentBCRelease(interp, bcFramePtr);
}
+ if (iPtr->execEnvPtr->rewind) {
+ result = TCL_ERROR;
+ goto abnormalReturn;
+ }
if (codePtr->flags & TCL_BYTECODE_RECOMPILE) {
iPtr->flags |= ERR_ALREADY_LOGGED;
codePtr->flags &= ~TCL_BYTECODE_RECOMPILE;