From 9f5e83a07bc6c07bee76ef80ffc94146b02adacd Mon Sep 17 00:00:00 2001 From: Miguel Sofer Date: Sun, 16 Jun 2002 17:59:12 +0000 Subject: bug in the consolidation of the INCR_..._STK instructions --- ChangeLog | 7 +++++++ generic/tclExecute.c | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7bec2f0..786f579 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2002-06-14 Miguel Sofer + * 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 + * 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 -- cgit v0.12