summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2013-08-15 20:00:34 (GMT)
committerdgp <dgp@users.sourceforge.net>2013-08-15 20:00:34 (GMT)
commitc52ed9de83b4635e8303e0df7dc0aa910d408973 (patch)
tree6d7dde7005c8ac5d0ced22b7133c574b83c315fa
parentcd515f6877c545167e3717e71175aca000d0a429 (diff)
parent9feda62fe0318715623c455abe7289bbb7dec34e (diff)
downloadtcl-c52ed9de83b4635e8303e0df7dc0aa910d408973.zip
tcl-c52ed9de83b4635e8303e0df7dc0aa910d408973.tar.gz
tcl-c52ed9de83b4635e8303e0df7dc0aa910d408973.tar.bz2
merge trunk
-rw-r--r--generic/tclBasic.c6
-rw-r--r--tests/trace.test7
2 files changed, 10 insertions, 3 deletions
diff --git a/generic/tclBasic.c b/generic/tclBasic.c
index fc238ce..64563ee 100644
--- a/generic/tclBasic.c
+++ b/generic/tclBasic.c
@@ -4189,12 +4189,12 @@ TclNREvalObjv(
result = TEOV_RunEnterTraces(interp, &cmdPtr, TclGetSourceFromFrame(
flags & TCL_EVAL_SOURCE_IN_FRAME ? iPtr->cmdFramePtr : NULL,
objc, objv), objc, objv, lookupNsPtr);
- if (!cmdPtr) {
- return TEOV_NotFound(interp, objc, objv, lookupNsPtr);
- }
if (result != TCL_OK) {
return result;
}
+ if (!cmdPtr) {
+ return TEOV_NotFound(interp, objc, objv, lookupNsPtr);
+ }
}
diff --git a/tests/trace.test b/tests/trace.test
index a3a5604..d830f3c 100644
--- a/tests/trace.test
+++ b/tests/trace.test
@@ -2661,6 +2661,13 @@ test trace-39.1 {bug #3485022: tracing Bc'ed commands} -setup {
rename dotrace {}
rename foo {}
} -result {3 | 0 1 1}
+
+test trace-40.1 {execution trace errors become command errors} {
+ proc foo args {}
+ trace add execution foo enter {rename foo {}; error bar;#}
+ catch foo m
+ return -level 0 $m[unset m]
+} bar
# Delete procedures when done, so we don't clash with other tests
# (e.g. foobar will clash with 'unknown' tests).