Previous change to the OP_ForceInt opcode did not work correctly when the

input is a negative floating point value.  This change is the fix.
Ticket #3536. (CVS 6023)

FossilOrigin-Name: f6c50f357c302907a5398c551a5c596f7d305031
This commit is contained in:
drh
2008-12-11 20:03:22 +00:00
parent b952676e08
commit bfbfadb43a
3 changed files with 9 additions and 11 deletions
+6 -6
View File
@@ -1,5 +1,5 @@
C Make\ssure\sthe\sOP_ForceInt\svdbe\sopcode\sdoes\snot\scause\sa\srowid\soverflow.\nTicket\s#3536.\s\sTests\sto\sverify\sthis\schange\swill\sbe\schecked\sin\sseparately.\s(CVS\s6022)
D 2008-12-11T19:50:19
C Previous\schange\sto\sthe\sOP_ForceInt\sopcode\sdid\snot\swork\scorrectly\swhen\sthe\ninput\sis\sa\snegative\sfloating\spoint\svalue.\s\sThis\schange\sis\sthe\sfix.\nTicket\s#3536.\s(CVS\s6023)
D 2008-12-11T20:03:22
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in f7e4c81c347b04f7b0f1c1b081a168645d7b8af7
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -194,7 +194,7 @@ F src/update.c 080889d241e4dcd1c545c8051eb6de86f4939295
F src/utf.c 1da9c832dba0fa8f865b5b902d93f420a1ee4245
F src/util.c ea62608f66f33a7e8322de83024ae37c415c0c7f
F src/vacuum.c 383d6297bddc011ab04a9eed110db6eaf523e8e9
F src/vdbe.c 78e24995434444af5e70954bc2a3c11b7df8ce09
F src/vdbe.c 0f9f19520c0b9ac474115b242d07ce5a2e8573d2
F src/vdbe.h 03516f28bf5aca00a53c4dccd6c313f96adb94f6
F src/vdbeInt.h e6e80a99ce634983b7cc2498843b4d2e5540900a
F src/vdbeapi.c 85c33cfbfa56249cbe627831610afafba754477d
@@ -664,7 +664,7 @@ F tool/speedtest16.c c8a9c793df96db7e4933f0852abb7a03d48f2e81
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
P da2ec96422b1f9de2e47d3b8c19ed20579742a9b
R c7952d9cca38bcb28b7004a2d09f78ae
P 6a049c6595550c123e77199cf7f3898bfcf40c86
R 30f4db4022dbc33bbe241ed05b40d603
U drh
Z e33e580283d52f7544ecf69dc34e2327
Z 34043079a7476d69b5d19a3b388c9c6e
+1 -1
View File
@@ -1 +1 @@
6a049c6595550c123e77199cf7f3898bfcf40c86
f6c50f357c302907a5398c551a5c596f7d305031
+2 -4
View File
@@ -43,7 +43,7 @@
** in this file for details. If in doubt, do not deviate from existing
** commenting and indentation practices when changing or adding code.
**
** $Id: vdbe.c,v 1.800 2008/12/11 19:50:19 drh Exp $
** $Id: vdbe.c,v 1.801 2008/12/11 20:03:22 drh Exp $
*/
#include "sqliteInt.h"
#include <ctype.h>
@@ -1466,9 +1466,7 @@ case OP_ForceInt: { /* jump, in1 */
}else{
assert( pIn1->flags & MEM_Real );
v = (sqlite3_int64)pIn1->r;
if( pIn1->r>(double)v ){
incrV = 1;
}
incrV = pIn1->r>(double)v ?1:0;
}
if( incrV ){
if( v==LARGEST_INT64 ){