Attachment "tclExecute.c.diff" to
ticket [1334570fff]
added by
melbardis
2005-10-22 06:03:51.
--- net-src/tcl/generic/tclExecute.c 2005-10-19 11:39:58.000000000 -0700
+++ src/tcl/generic/tclExecute.c 2005-10-21 15:58:30.358467100 -0700
@@ -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.217 2005/10/19 18:39:58 dgp Exp $
+ * RCS: @(#) $Id: tclExecute.c 782 2005-10-20 00:55:38Z [email protected] $
*/
#include "tclInt.h"
@@ -2383,9 +2383,9 @@
i = TclGetInt1AtPtr(pc+1);
incrPtr = Tcl_NewIntObj(i);
pcAdjustment = 2;
+ Tcl_IncrRefCount(incrPtr); // EPM (moved from below)
doIncrStk:
- Tcl_IncrRefCount(incrPtr);
if ((*pc == INST_INCR_ARRAY_STK_IMM)
|| (*pc == INST_INCR_ARRAY_STK)) {
part2 = TclGetString(*tosPtr);
@@ -2417,9 +2417,9 @@
i = TclGetInt1AtPtr(pc+2);
incrPtr = Tcl_NewIntObj(i);
pcAdjustment = 3;
+ Tcl_IncrRefCount(incrPtr); //EPM moved from below
doIncrArray:
- Tcl_IncrRefCount(incrPtr);
part2 = TclGetString(*tosPtr);
arrayPtr = &(compiledLocals[opnd]);
part1 = arrayPtr->name;
@@ -2540,9 +2540,9 @@
}
/* All other cases, flow through to generic handling */
TclNewLongObj(incrPtr, i);
+ Tcl_IncrRefCount(incrPtr); //EPM moved frombelow
doIncrScalar:
- Tcl_IncrRefCount(incrPtr);
varPtr = &(compiledLocals[opnd]);
part1 = varPtr->name;
while (TclIsVarLink(varPtr)) {