diff options
author | Miguel Sofer <miguel.sofer@gmail.com> | 2002-06-16 17:59:12 (GMT) |
---|---|---|
committer | Miguel Sofer <miguel.sofer@gmail.com> | 2002-06-16 17:59:12 (GMT) |
commit | 9f5e83a07bc6c07bee76ef80ffc94146b02adacd (patch) | |
tree | 121b4e095bc7d455f478998aabfb0fec4fec97a7 | |
parent | be8fdb37920fef9eda3777d85af7ff2dc87dad05 (diff) | |
download | tcl-9f5e83a07bc6c07bee76ef80ffc94146b02adacd.zip tcl-9f5e83a07bc6c07bee76ef80ffc94146b02adacd.tar.gz tcl-9f5e83a07bc6c07bee76ef80ffc94146b02adacd.tar.bz2 |
bug in the consolidation of the INCR_..._STK instructions
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | generic/tclExecute.c | 5 |
2 files changed, 10 insertions, 2 deletions
@@ -1,5 +1,12 @@ 2002-06-14 Miguel Sofer <msofer@users.sourceforge.net> + * generic/tclExecute.c: bug in the consolidation of the + INCR_..._STK instructions; the bug could not be exercised as the + (faulty) instruction INST_INCR_ARRAY_STK was never compiled-in + (related to [Bug 569438]). + +2002-06-14 Miguel Sofer <msofer@users.sourceforge.net> + * generic/tclExecute.c (TclExecuteByteCode): runtime peep-hole optimisation of variables (INST_STORE, INST_INCR) and commands (INST_INVOKE); faster check for the existence of a catch. diff --git a/generic/tclExecute.c b/generic/tclExecute.c index 6682abe..b1893f2 100644 --- a/generic/tclExecute.c +++ b/generic/tclExecute.c @@ -11,7 +11,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.68 2002/06/14 21:08:31 msofer Exp $ + * RCS: @(#) $Id: tclExecute.c,v 1.69 2002/06/16 17:59:12 msofer Exp $ */ #include "tclInt.h" @@ -1702,15 +1702,16 @@ TclExecuteByteCode(interp, codePtr) ADJUST_PC(pcAdjustment); case INST_INCR_ARRAY_STK: + valuePtr = POP_OBJECT(); elemPtr = POP_OBJECT(); goto doIncrStkGetIncr; case INST_INCR_SCALAR_STK: case INST_INCR_STK: + valuePtr = POP_OBJECT(); elemPtr = NULL; doIncrStkGetIncr: - valuePtr = POP_OBJECT(); if (valuePtr->typePtr == &tclIntType) { i = valuePtr->internalRep.longValue; #ifndef TCL_WIDE_INT_IS_LONG |