]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Change the OP_DecrJumpZero opcode back to its old behavior of always
authordrh <drh@noemail.net>
Wed, 30 Nov 2016 05:08:59 +0000 (05:08 +0000)
committerdrh <drh@noemail.net>
Wed, 30 Nov 2016 05:08:59 +0000 (05:08 +0000)
decrementing, except top the decrementing when it reaches the largest negative
number.

FossilOrigin-Name: 9d0d8c2e7c529562889de02346733dcb532e9388

manifest
manifest.uuid
src/vdbe.c

index 290e4d72d891902d51d20af82d20514c834edeb4..afe9bd5c8d4f73f4614dfa0b40e930c37f504a14 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C More\simprovements\sto\sboundary\scases\sin\sthe\sdate/time\sfunctions,\sflowing\sout\nof\sbranch\scoverage\stesting.
-D 2016-11-30T04:07:57.427
+C Change\sthe\sOP_DecrJumpZero\sopcode\sback\sto\sits\sold\sbehavior\sof\salways\ndecrementing,\sexcept\stop\sthe\sdecrementing\swhen\sit\sreaches\sthe\slargest\snegative\nnumber.
+D 2016-11-30T05:08:59.150
 F Makefile.in 6b572807415d3f0a379cebc9461416d8df4a12c8
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc bb4d970894abbbe0e88d00aac29bd52af8bc95f4
@@ -454,7 +454,7 @@ F src/update.c 1b8321100cac004f0721ab67b16909dd006e663c
 F src/utf.c 699001c79f28e48e9bcdf8a463da029ea660540c
 F src/util.c 3e2da6101888d073e79ecc6af5e0a2f70fa1e498
 F src/vacuum.c 33c174b28886b2faf26e503b5a49a1c01a9b1c16
-F src/vdbe.c 1802a10926b14de7065950d436e7ce418682faef
+F src/vdbe.c 336a3e5696683a585e56bbbc4f05ce33957d28dd
 F src/vdbe.h c044be7050ac6bf596eecc6ab159f5dbc020a3b7
 F src/vdbeInt.h 9b498d3cb52dc2efb53571fb8ae8e14cf298ce84
 F src/vdbeapi.c ea4e2dc2213cc6bd7bee375a29a9b51c31b93ae0
@@ -1535,7 +1535,7 @@ F vsixtest/vsixtest.tcl 6a9a6ab600c25a91a7acc6293828957a386a8a93
 F vsixtest/vsixtest.vcxproj.data 2ed517e100c66dc455b492e1a33350c1b20fbcdc
 F vsixtest/vsixtest.vcxproj.filters 37e51ffedcdb064aad6ff33b6148725226cd608e
 F vsixtest/vsixtest_TemporaryKey.pfx e5b1b036facdb453873e7084e1cae9102ccc67a0
-P 96106d5620eae51474234f4eec1d2c5bd570d486
-R 533c0afd3cc78feab0c7d06b5d67b3a1
+P 1218005ab7b52ef45db1354d17fdd8a1a1af9854
+R cd48ebcdd22406f3055d813d70fb9f48
 U drh
-Z 8875af7104f1fa4c1f8084b812f6f104
+Z 430b79992fd44a23d3200085781e41a0
index 67b5bd51d3d043bebd9fea1dd85e5e15f8f14836..529fc7f38b4b0f6a1ebefffe363182a1c1deaca1 100644 (file)
@@ -1 +1 @@
-1218005ab7b52ef45db1354d17fdd8a1a1af9854
\ No newline at end of file
+9d0d8c2e7c529562889de02346733dcb532e9388
\ No newline at end of file
index ec92e8b1c0682bd7a10a8ee3c98f8549b4d070d9..3b2550810fdd7cb2f0eb0c7a6893f18e9c076b1e 100644 (file)
@@ -6022,17 +6022,15 @@ case OP_IfNotZero: {        /* jump, in1 */
 /* Opcode: DecrJumpZero P1 P2 * * *
 ** Synopsis: if (--r[P1])==0 goto P2
 **
-** Register P1 must hold an integer.  If the value in P1 is positive,
-** decrement the value and jump to P2 if the new value is exactly zero.
+** Register P1 must hold an integer.  Decrement the value in P1
+** and jump to P2 if the new value is exactly zero.
 */
 case OP_DecrJumpZero: {      /* jump, in1 */
   pIn1 = &aMem[pOp->p1];
   assert( pIn1->flags&MEM_Int );
-  if( pIn1->u.i>0 ){
-    pIn1->u.i--;
-    VdbeBranchTaken(pIn1->u.i==0, 2);
-    if( pIn1->u.i==0 ) goto jump_to_p2;
-  }
+  if( pIn1->u.i>SMALLEST_INT64 ) pIn1->u.i--;
+  VdbeBranchTaken(pIn1->u.i==0, 2);
+  if( pIn1->u.i==0 ) goto jump_to_p2;
   break;
 }