diff --git a/manifest b/manifest index 7694481396..78bbaab687 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C The\sBTree\scode\scompiles\sand\slinks\snow,\sbut\sit\sdoes\snot\swork\syet.\s(CVS\s226) -D 2001-06-22T19:15:00 +C Fix\sa\sbug\sin\spager.c\sintroduced\sin\sthe\sprevious\sdelta.\s(CVS\s227) +D 2001-06-23T11:36:20 F COPYRIGHT 74a8a6531a42e124df07ab5599aad63870fa0bd4 F Makefile.in 65862a30703b070209b5f5e565d75cc870962b3c F README 51f6a4e7408b34afa5bc1c0485f61b6a4efb6958 @@ -31,7 +31,7 @@ F src/ex/sizes.tcl f54bad4a2ac567624be59131a6ee42d71b41a3d7 F src/expr.c c4c24c3af1eba094a816522eb0e085bed518ee16 F src/insert.c aa528e20a787af85432a61daaea6df394bd251d7 F src/main.c 0a13c7a2beb8ce36aee43daf8c95989b200727a7 -F src/pager.c 30c6f10a3c0cdfca3314c07d34375dbc19a48c2f +F src/pager.c d5cb53ac679d039d40661e50200a8dde6406ca15 F src/pager.h 724ac5a79b5fa704a1e1a87e421e421b3da9c1e4 F src/parse.y 8fc096948994a7ffbf61ba13129cc589f794a9cb F src/printf.c b1e22a47be8cdf707815647239991e08e8cb69f9 @@ -107,7 +107,7 @@ F www/opcode.tcl cb3a1abf8b7b9be9f3a228d097d6bf8b742c2b6f F www/sqlite.tcl cb0d23d8f061a80543928755ec7775da6e4f362f F www/tclsqlite.tcl 06f81c401f79a04f2c5ebfb97e7c176225c0aef2 F www/vdbe.tcl 0c8aaa529dd216ccbf7daaabd80985e413d5f9ad -P d4be4709ee32bab6e78104861ed4e02d153779aa -R 0a720e1f17d26fb5cb5699a653f8a269 +P b31c49021c260a67b7848bc077b75a7146e31c71 +R e52ea2ba0d86c859453a43591ceb35fc U drh -Z 4c2d9d4e753474964194e60669402b32 +Z 86cec7512c643b5b976845158db125a4 diff --git a/manifest.uuid b/manifest.uuid index 536496be0a..2104dfe136 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -b31c49021c260a67b7848bc077b75a7146e31c71 \ No newline at end of file +f4df6664037c68e1ce539c84c852124d95cd5a56 \ No newline at end of file diff --git a/src/pager.c b/src/pager.c index b102e04868..a630720a56 100644 --- a/src/pager.c +++ b/src/pager.c @@ -27,7 +27,7 @@ ** all writes in order to support rollback. Locking is used to limit ** access to one or more reader or one writer. ** -** @(#) $Id: pager.c,v 1.9 2001/06/22 19:15:00 drh Exp $ +** @(#) $Id: pager.c,v 1.10 2001/06/23 11:36:20 drh Exp $ */ #include "sqliteInt.h" #include "pager.h" @@ -562,8 +562,7 @@ Pgno sqlitepager_pagenumber(void *pData){ ** currently on the freelist (the reference count is zero) then ** remove it from the freelist. */ -int sqlitepager_ref(void *pData){ - PgHdr *pPg = DATA_TO_PGHDR(pData); +static void page_ref(PgHdr *pPg){ if( pPg->nRef==0 ){ /* The page is currently on the freelist. Remove it. */ if( pPg->pPrevFree ){ @@ -579,6 +578,15 @@ int sqlitepager_ref(void *pData){ pPg->pPager->nRef++; } pPg->nRef++; +} + +/* +** Increment the reference count for a page. The input pointer is +** a reference to the page data. +*/ +int sqlitepager_ref(void *pData){ + PgHdr *pPg = DATA_TO_PGHDR(pData); + page_ref(pPg); return SQLITE_OK; } @@ -766,7 +774,7 @@ int sqlitepager_get(Pager *pPager, Pgno pgno, void **ppPage){ }else{ /* The requested page is in the page cache. */ pPager->nHit++; - sqlitepager_ref(pPg); + page_ref(pPg); } *ppPage = PGHDR_TO_DATA(pPg); return SQLITE_OK; @@ -799,7 +807,7 @@ void *sqlitepager_lookup(Pager *pPager, Pgno pgno){ } pPg = pager_lookup(pPager, pgno); if( pPg==0 ) return 0; - sqlitepager_ref(pPg); + page_ref(pPg); return PGHDR_TO_DATA(pPg); }