diff options
author | dgp <dgp@users.sourceforge.net> | 2008-08-04 04:48:13 (GMT) |
---|---|---|
committer | dgp <dgp@users.sourceforge.net> | 2008-08-04 04:48:13 (GMT) |
commit | 48cc4927f6e3bc52ca55b4c366efd3b02987b998 (patch) | |
tree | a66d62225090f27fc546e88101c12e45e9de6e00 /generic/tclExecute.c | |
parent | 3e033b354b6208eb4e0c1e0acd9fbb3e52bcd579 (diff) | |
download | tcl-48cc4927f6e3bc52ca55b4c366efd3b02987b998.zip tcl-48cc4927f6e3bc52ca55b4c366efd3b02987b998.tar.gz tcl-48cc4927f6e3bc52ca55b4c366efd3b02987b998.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.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 833197a..985a867 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -13,7 +13,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.369.2.3 2008/07/29 13:51:11 msofer Exp $ + * RCS: @(#) $Id: tclExecute.c,v 1.369.2.4 2008/08/04 04:48:14 dgp Exp $ */ #include "tclInt.h" @@ -2051,6 +2051,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); |