diff options
author | dgp <dgp@users.sourceforge.net> | 2013-08-27 20:06:08 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2013-08-27 20:06:08 (GMT) |
commit | 7ddfa6aeb8f6eb66f66f4ae36b5ee59cc56524f6 (patch) | |
tree | 075dead0366db0d3a2129ab90d8162a3ea8e659e /generic | |
parent | f300f251bd0a7b4aeb3ee2ad971c5b766629ed04 (diff) | |
download | tcl-7ddfa6aeb8f6eb66f66f4ae36b5ee59cc56524f6.zip tcl-7ddfa6aeb8f6eb66f66f4ae36b5ee59cc56524f6.tar.gz tcl-7ddfa6aeb8f6eb66f66f4ae36b5ee59cc56524f6.tar.bz2 |
Exceptions raised from enter traces take priority over re-resolution games.
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclBasic.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c index 8407edb..172c698 100644 --- a/generic/tclBasic.c +++ b/generic/tclBasic.c @@ -4230,6 +4230,11 @@ EvalObjvCore( deleted = cmdPtr->flags & CMD_IS_DELETED; TclCleanupCommandMacro(cmdPtr); + if (traceCode != TCL_OK) { + Tcl_DecrRefCount(commandPtr); + return traceCode; + } + if (cmdEpoch != newEpoch) { /* @@ -4255,7 +4260,7 @@ EvalObjvCore( } } - if (cmdPtr && (traceCode == TCL_OK)) { + if (cmdPtr) { /* * Command was found: push a record to schedule the leave traces. */ @@ -4266,11 +4271,6 @@ EvalObjvCore( } else { Tcl_DecrRefCount(commandPtr); } - result = traceCode; - - if (result != TCL_OK) { - return result; - } if (cmdPtr == NULL) { if (weLookUp) { return TEOV_NotFound(interp, objc, objv, lookupNsPtr); |