]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Small performance optimization in the freeSpace() routine of btree.c.
authordrh <drh@noemail.net>
Sat, 17 Sep 2016 19:34:32 +0000 (19:34 +0000)
committerdrh <drh@noemail.net>
Sat, 17 Sep 2016 19:34:32 +0000 (19:34 +0000)
FossilOrigin-Name: 63962e2a927963575be74c3ce11f39f722c07c72

manifest
manifest.uuid
src/btree.c

index 1adebbd453f37681f930f60192bfc817e8d3839e..c6423c99e610eee294dbe25334229d5668e7dc4c 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Improved\sdescription\sof\sthe\sElseNotEq\sopcode\sin\scomments.\s\sNo\schanges\sto\scode.
-D 2016-09-17T17:39:01.590
+C Small\sperformance\soptimization\sin\sthe\sfreeSpace()\sroutine\sof\sbtree.c.
+D 2016-09-17T19:34:32.434
 F Makefile.in 6fd48ffcf7c2deea7499062d1f3747f986c19678
 F Makefile.linux-gcc 7bc79876b875010e8c8f9502eb935ca92aa3c434
 F Makefile.msc e1aa788e84f926e42239ee167c53f785bedacacd
@@ -329,7 +329,7 @@ F src/auth.c 930b376a9c56998557367e6f7f8aaeac82a2a792
 F src/backup.c 92c2e3b5fcb47626413717138617f4d32f08aea4
 F src/bitvec.c 3ee4c8b2c94ed3a7377256e18199e6ff5cf33f63
 F src/btmutex.c bc87dd3b062cc26edfe79918de2200ccb8d41e73
-F src/btree.c 2551bd3ecb8b8988fb8b23aabadfb214dbc38e46
+F src/btree.c 56e1732ecfb3731efcb216266ec26b1b96e5e8c9
 F src/btree.h d05b2fcc290991a8a3d9ea1816ddd55a4359dcde
 F src/btreeInt.h c18b7d2a3494695133e4e60ee36061d37f45d9a5
 F src/build.c 7438b6dae3022818100a79ebbad707b5c65f9344
@@ -1525,7 +1525,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 6fc95dd7a0b44212f30e657a850892a85a12715c
-R 562a09a50cde79cd40aa8ed06ba4df04
+P e011435e2f57ddfe315d5da48e93185d6789fc80
+R 1118d76ecd8c2e7b5eef8b1643f57d9c
 U drh
-Z 32468d94216159db676195bbafc35d3f
+Z f339d94adbbc4640c3413f9f33dceacc
index 15f3d66f4a427758b4aef409a86f305b8a4b575a..1984ef5697a59769adf32da33a373a15c6255df2 100644 (file)
@@ -1 +1 @@
-e011435e2f57ddfe315d5da48e93185d6789fc80
\ No newline at end of file
+63962e2a927963575be74c3ce11f39f722c07c72
\ No newline at end of file
index 841aee9463f5cecbfe7d7d6fba68377685f054e8..681285ac999a90cfba49cc8d0de71416aba8cd3f 100644 (file)
@@ -1605,8 +1605,11 @@ static int freeSpace(MemPage *pPage, u16 iStart, u16 iSize){
   if( data[iPtr+1]==0 && data[iPtr]==0 ){
     iFreeBlk = 0;  /* Shortcut for the case when the freelist is empty */
   }else{
-    while( (iFreeBlk = get2byte(&data[iPtr]))>0 && iFreeBlk<iStart ){
-      if( iFreeBlk<iPtr+4 ) return SQLITE_CORRUPT_BKPT;
+    while( (iFreeBlk = get2byte(&data[iPtr]))<iStart ){
+      if( iFreeBlk<iPtr+4 ){
+        if( iFreeBlk==0 ) break;
+        return SQLITE_CORRUPT_BKPT;
+      }
       iPtr = iFreeBlk;
     }
     if( iFreeBlk>iLast ) return SQLITE_CORRUPT_BKPT;