aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backup.c2
-rw-r--r--src/btree.c20
-rw-r--r--src/btreeInt.h2
-rw-r--r--src/build.c2
-rw-r--r--src/main.c2
-rw-r--r--src/pragma.c2
-rw-r--r--src/vacuum.c2
7 files changed, 15 insertions, 17 deletions
diff --git a/src/backup.c b/src/backup.c
index 233d0cee7..77e7ed950 100644
--- a/src/backup.c
+++ b/src/backup.c
@@ -112,7 +112,7 @@ static Btree *findBtree(sqlite3 *pErrorDb, sqlite3 *pDb, const char *zDb){
*/
static int setDestPgsz(sqlite3_backup *p){
int rc;
- rc = sqlite3BtreeSetPageSize(p->pDest,sqlite3BtreeGetPageSize(p->pSrc),-1,0);
+ rc = sqlite3BtreeSetPageSize(p->pDest,sqlite3BtreeGetPageSize(p->pSrc),0,0);
return rc;
}
diff --git a/src/btree.c b/src/btree.c
index 0e1f7a2dc..961de0ea4 100644
--- a/src/btree.c
+++ b/src/btree.c
@@ -2856,19 +2856,17 @@ int sqlite3BtreeSetPagerFlags(
*/
int sqlite3BtreeSetPageSize(Btree *p, int pageSize, int nReserve, int iFix){
int rc = SQLITE_OK;
+ int x;
BtShared *pBt = p->pBt;
- assert( nReserve>=-1 && nReserve<=254 );
+ assert( nReserve>=0 && nReserve<=255 );
sqlite3BtreeEnter(p);
- if( nReserve>=0 ){
- pBt->nReserveWanted = nReserve + 1;
- }
+ pBt->nReserveWanted = nReserve;
+ x = pBt->pageSize - pBt->usableSize;
+ if( nReserve<x ) nReserve = x;
if( pBt->btsFlags & BTS_PAGESIZE_FIXED ){
sqlite3BtreeLeave(p);
return SQLITE_READONLY;
}
- if( nReserve<0 ){
- nReserve = pBt->pageSize - pBt->usableSize;
- }
assert( nReserve>=0 && nReserve<=255 );
if( pageSize>=512 && pageSize<=SQLITE_MAX_PAGE_SIZE &&
((pageSize-1)&pageSize)==0 ){
@@ -2919,12 +2917,12 @@ int sqlite3BtreeGetReserveNoMutex(Btree *p){
** The amount of reserve can only grow - never shrink.
*/
int sqlite3BtreeGetRequestedReserve(Btree *p){
- int n;
+ int n1, n2;
sqlite3BtreeEnter(p);
- n = ((int)p->pBt->nReserveWanted) - 1;
- if( n<0 ) n = sqlite3BtreeGetReserveNoMutex(p);
+ n1 = (int)p->pBt->nReserveWanted;
+ n2 = sqlite3BtreeGetReserveNoMutex(p);
sqlite3BtreeLeave(p);
- return n;
+ return n1>n2 ? n1 : n2;
}
diff --git a/src/btreeInt.h b/src/btreeInt.h
index 34b33096b..ec25b5466 100644
--- a/src/btreeInt.h
+++ b/src/btreeInt.h
@@ -417,7 +417,7 @@ struct BtShared {
#endif
u8 inTransaction; /* Transaction state */
u8 max1bytePayload; /* Maximum first byte of cell for a 1-byte payload */
- u8 nReserveWanted; /* 1 more than desired number of extra bytes per page */
+ u8 nReserveWanted; /* Desired number of extra bytes per page */
u16 btsFlags; /* Boolean parameters. See BTS_* macros below */
u16 maxLocal; /* Maximum local payload in non-LEAFDATA tables */
u16 minLocal; /* Minimum local payload in non-LEAFDATA tables */
diff --git a/src/build.c b/src/build.c
index cf36766ae..0b47e8e77 100644
--- a/src/build.c
+++ b/src/build.c
@@ -4630,7 +4630,7 @@ int sqlite3OpenTempDatabase(Parse *pParse){
}
db->aDb[1].pBt = pBt;
assert( db->aDb[1].pSchema );
- if( SQLITE_NOMEM==sqlite3BtreeSetPageSize(pBt, db->nextPagesize, -1, 0) ){
+ if( SQLITE_NOMEM==sqlite3BtreeSetPageSize(pBt, db->nextPagesize, 0, 0) ){
sqlite3OomFault(db);
return 1;
}
diff --git a/src/main.c b/src/main.c
index 0d7011e7d..9e1a0e9da 100644
--- a/src/main.c
+++ b/src/main.c
@@ -3854,7 +3854,7 @@ int sqlite3_file_control(sqlite3 *db, const char *zDbName, int op, void *pArg){
}else if( op==SQLITE_FCNTL_RESERVE_BYTES ){
int iNew = *(int*)pArg;
*(int*)pArg = sqlite3BtreeGetRequestedReserve(pBtree);
- if( iNew>=0 && iNew<=254 ){
+ if( iNew>=0 && iNew<=255 ){
sqlite3BtreeSetPageSize(pBtree, 0, iNew, 0);
}
rc = SQLITE_OK;
diff --git a/src/pragma.c b/src/pragma.c
index 7105f75a9..161a241ef 100644
--- a/src/pragma.c
+++ b/src/pragma.c
@@ -555,7 +555,7 @@ void sqlite3Pragma(
** buffer that the pager module resizes using sqlite3_realloc().
*/
db->nextPagesize = sqlite3Atoi(zRight);
- if( SQLITE_NOMEM==sqlite3BtreeSetPageSize(pBt, db->nextPagesize,-1,0) ){
+ if( SQLITE_NOMEM==sqlite3BtreeSetPageSize(pBt, db->nextPagesize,0,0) ){
sqlite3OomFault(db);
}
}
diff --git a/src/vacuum.c b/src/vacuum.c
index 5c230fbe1..920a98e01 100644
--- a/src/vacuum.c
+++ b/src/vacuum.c
@@ -377,7 +377,7 @@ end_of_vacuum:
db->nChange = saved_nChange;
db->nTotalChange = saved_nTotalChange;
db->mTrace = saved_mTrace;
- sqlite3BtreeSetPageSize(pMain, -1, -1, 1);
+ sqlite3BtreeSetPageSize(pMain, -1, 0, 1);
/* Currently there is an SQL level transaction open on the vacuum
** database. No locks are held on any other files (since the main file