-C Remove\san\sobsolete\slayer\sof\sredirection\sin\spager.c.\s(CVS\s5723)
-D 2008-09-19T09:14:44
+C In\ssqlite3BtreeGetMeta(),\sif\sBtShared.pPage1\sis\savailable\suse\sit\sinstead\sof\srequesting\sa\snew\sreference\sfrom\sthe\spager\slayer.\s(CVS\s5724)
+D 2008-09-19T15:10:58
F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
F Makefile.in d15a7ebfe5e057a72a49805ffb302dbb601c8329
F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
F src/auth.c c8b2ab5c8bad4bd90ed7c294694f48269162c627
F src/bitvec.c 95c86bd18d8fedf0533f5af196192546e10a7e7d
F src/btmutex.c 709cad2cdca0afd013f0f612363810e53f59ec53
-F src/btree.c 54fc8950e4c292ff92bb431449a27772862feae9
+F src/btree.c cfe8dbbaa75f587653f33121c3e82999c65069ae
F src/btree.h 6371c5e599fab391a150c96afbc10062b276d107
F src/btreeInt.h e36f77e6621d671beb19ae581af1eba116cdfdc4
F src/build.c 160c71acca8f643f436ed6c1ee2f684c88df4dfe
F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
F tool/speedtest8.c 1dbced29de5f59ba2ebf877edcadf171540374d1
F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
-P 4de71a4e2f59d302156e10efcb288efa23e18598
-R e7e88b502f42bf2bf854d0ef69d24fbc
+P 75deaa442f3a363c4ea5b6f0e510306feeaa8915
+R 62a9176bcf4a5c57a6633d26293ede50
U danielk1977
-Z a0c5df28c3667ba69a8633d2e8e61142
+Z 89134c443f08e4715d35e3ebe96ef424
** May you share freely, never taking more than you give.
**
*************************************************************************
-** $Id: btree.c,v 1.514 2008/09/18 18:17:04 danielk1977 Exp $
+** $Id: btree.c,v 1.515 2008/09/19 15:10:58 danielk1977 Exp $
**
** This file implements a external (disk-based) database using BTrees.
** See the header comment on "btreeInt.h" for additional information.
pPage = *ppPage;
}
if( pPage->isInit!=PAGE_ISINIT_FULL ){
- rc = sqlite3BtreeInitPage(pPage, pParent);
+ rc = sqlite3BtreeInitPage(pPage, pParent);
}else if( pParent && (pPage==pParent || pPage->pParent!=pParent) ){
/* This condition indicates a loop in the b-tree structure (the scenario
** where database corruption has caused a page to be a direct or
}
assert( idx>=0 && idx<=15 );
- rc = sqlite3PagerGet(pBt->pPager, 1, &pDbPage);
- if( rc ){
- sqlite3BtreeLeave(p);
- return rc;
+ if( !pBt->pPage1 ){
+ rc = sqlite3PagerGet(pBt->pPager, 1, &pDbPage);
+ if( rc ){
+ sqlite3BtreeLeave(p);
+ return rc;
+ }
+ pP1 = (unsigned char *)sqlite3PagerGetData(pDbPage);
+ }else{
+ pP1 = (unsigned char *)pBt->pPage1->aData;
}
- pP1 = (unsigned char *)sqlite3PagerGetData(pDbPage);
*pMeta = get4byte(&pP1[36 + idx*4]);
- sqlite3PagerUnref(pDbPage);
+
+ if( !pBt->pPage1 ){
+ sqlite3PagerUnref(pDbPage);
+ }
/* If autovacuumed is disabled in this build but we are trying to
** access an autovacuumed database, then make the database readonly.