diff options
author | Miguel Sofer <miguel.sofer@gmail.com> | 2007-04-19 01:39:09 (GMT) |
---|---|---|
committer | Miguel Sofer <miguel.sofer@gmail.com> | 2007-04-19 01:39:09 (GMT) |
commit | fb49f5dcab8ff9b5198b3616cad010098e1f5674 (patch) | |
tree | c7ba85067e21b3edefd78062708a25be5ca1c9bc /generic | |
parent | f983cd5f117adbc96f5eedfd8c98a5677519760a (diff) | |
download | tcl-fb49f5dcab8ff9b5198b3616cad010098e1f5674.zip tcl-fb49f5dcab8ff9b5198b3616cad010098e1f5674.tar.gz tcl-fb49f5dcab8ff9b5198b3616cad010098e1f5674.tar.bz2 |
* generic/tclExecute.c (INST_LSHIFT): fixed a mistake introduced
in version 1.266 ('=' became '=='), which effectively turned the
block that handles native shifts into dead code. This explains why
the testsuite did not pick this mistake. Rewrote to make the
intention clear.
Diffstat (limited to 'generic')
-rw-r--r-- | generic/tclExecute.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/generic/tclExecute.c b/generic/tclExecute.c index ebb5f49..abe70ad 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.279 2007/04/18 21:00:42 msofer Exp $ + * RCS: @(#) $Id: tclExecute.c,v 1.280 2007/04/19 01:39:13 msofer Exp $ */ #include "tclInt.h" @@ -4265,7 +4265,7 @@ TclExecuteByteCode( TRACE(("%s %s => ", O2S(valuePtr), O2S(value2Ptr))); if ((type1 == TCL_NUMBER_LONG) && (size_t) shift < CHAR_BIT*sizeof(long) - && l1 == *(const long *)ptr1 + && ((l1 = *(const long *)ptr1) != 0) && !((l1>0 ? l1 : ~l1) & -(1L<<(CHAR_BIT*sizeof(long) - 1 - shift)))) { TclNewLongObj(objResultPtr, (l1<<shift)); |