summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2013-08-27 20:06:08 (GMT)
committerdgp <dgp@users.sourceforge.net>2013-08-27 20:06:08 (GMT)
commit7ddfa6aeb8f6eb66f66f4ae36b5ee59cc56524f6 (patch)
tree075dead0366db0d3a2129ab90d8162a3ea8e659e
parentf300f251bd0a7b4aeb3ee2ad971c5b766629ed04 (diff)
downloadtcl-7ddfa6aeb8f6eb66f66f4ae36b5ee59cc56524f6.zip
tcl-7ddfa6aeb8f6eb66f66f4ae36b5ee59cc56524f6.tar.gz
tcl-7ddfa6aeb8f6eb66f66f4ae36b5ee59cc56524f6.tar.bz2
Exceptions raised from enter traces take priority over re-resolution games.
-rw-r--r--generic/tclBasic.c12
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);