summaryrefslogtreecommitdiffstats
path: root/generic/tclExecute.c
diff options
context:
space:
mode:
authordgp <dgp@users.sourceforge.net>2008-08-04 04:49:23 (GMT)
committerdgp <dgp@users.sourceforge.net>2008-08-04 04:49:23 (GMT)
commit7afb51929c36eb56d586471d1411586a7f3c2a6e (patch)
tree290eef4e0202502bb182dd21aac070691b6f212e /generic/tclExecute.c
parent7d4f17d0447b1a63cf5c5a22a4d5e601c2221626 (diff)
downloadtcl-7afb51929c36eb56d586471d1411586a7f3c2a6e.zip
tcl-7afb51929c36eb56d586471d1411586a7f3c2a6e.tar.gz
tcl-7afb51929c36eb56d586471d1411586a7f3c2a6e.tar.bz2
* generic/tclExecute.c: Stopped faulty double-logging of errors to
* tests/execute.test: stack trace when a compile epoch bump triggers fallback to direct evaluation of commands in a compiled script. [Bug 2037338]
Diffstat (limited to 'generic/tclExecute.c')
-rw-r--r--generic/tclExecute.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index 3f8f4a7..360525e 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -14,7 +14,7 @@
* See the file "license.terms" for information on usage and redistribution of
* this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tclExecute.c,v 1.394 2008/08/03 17:33:10 msofer Exp $
+ * RCS: @(#) $Id: tclExecute.c,v 1.395 2008/08/04 04:49:24 dgp Exp $
*/
#include "tclInt.h"
@@ -2294,6 +2294,16 @@ TclExecuteByteCode(
CACHE_STACK_INFO();
if (result != TCL_OK) {
cleanup = 0;
+ if (result == TCL_ERROR) {
+ /*
+ * Tcl_EvalEx already did the task of logging
+ * the error to the stack trace for us, so set
+ * a flag to prevent the TEBC exception handling
+ * machinery from trying to do it again.
+ * Tcl Bug 2037338. See test execute-8.4.
+ */
+ iPtr->flags |= ERR_ALREADY_LOGGED;
+ }
goto processExceptionReturn;
}
opnd = TclGetUInt4AtPtr(pc+1);