summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--generic/tclExecute.c7
2 files changed, 11 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 234c2b4..2875de2 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-08-14 Miguel Sofer <msofer@users.sf.net>
+
+ * generic/tclExecute.c (INST_INVOKE*): peephole opt, do not get
+ the interp's result if it will be pushed/popped.
+
2007-08-14 Don Porter <dgp@users.sourceforge.net>
* generic/tclBasic.c: Use fully qualified variable names for
diff --git a/generic/tclExecute.c b/generic/tclExecute.c
index a54ee92..43bd58a 100644
--- a/generic/tclExecute.c
+++ b/generic/tclExecute.c
@@ -12,7 +12,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.313 2007/08/13 23:07:36 dgp Exp $
+ * RCS: @(#) $Id: tclExecute.c,v 1.314 2007/08/14 21:04:28 msofer Exp $
*/
#include "tclInt.h"
@@ -2042,6 +2042,11 @@ TclExecuteByteCode(
if (result == TCL_OK) {
Tcl_Obj *objPtr;
+#ifndef TCL_COMPILE_DEBUG
+ if (*(pc+pcAdjustment) == INST_POP) {
+ NEXT_INST_V((pcAdjustment+1), objc, 0);
+ }
+#endif
/*
* Push the call's object result and continue execution with
* the next instruction.