]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Change page quantities in pcache1.c to unsigned.
authordrh <drh@noemail.net>
Mon, 2 Jan 2012 18:00:55 +0000 (18:00 +0000)
committerdrh <drh@noemail.net>
Mon, 2 Jan 2012 18:00:55 +0000 (18:00 +0000)
FossilOrigin-Name: da52e6e8b490508bc1ee4700aa45a79f398363da

manifest
manifest.uuid
src/pcache1.c

index 153ec82af8618ed441042e6471834524fa95b127..b5bf9bdea394aadf39433250ec8f70d794e03089 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Remove\san\sincorrect\sassert()\sin\sbtree.c.
-D 2012-01-02T16:38:57.512
+C Change\spage\squantities\sin\spcache1.c\sto\sunsigned.
+D 2012-01-02T18:00:55.564
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 5b4a3e12a850b021547e43daf886b25133b44c07
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -173,7 +173,7 @@ F src/pager.h 5cd760857707529b403837d813d86b68938d6183
 F src/parse.y fabb2e7047417d840e6fdb3ef0988a86849a08ba
 F src/pcache.c f8043b433a57aba85384a531e3937a804432a346
 F src/pcache.h b1d8775a9bddf44e65edb0d20bfc57a4982f840f
-F src/pcache1.c 9d735349ac87ef08076c6b1230f04cd83b15c6da
+F src/pcache1.c e1aaa3bc9bbfd8b0bc391ca731f5f8185467375d
 F src/pragma.c dd66f21fafe7be40e1a48ad4195764cc191cf583
 F src/prepare.c ec4989f7f480544bdc4192fe663470d2a2d7d61e
 F src/printf.c 7ffb4ebb8b341f67e049695ba031da717b3d2699
@@ -986,7 +986,7 @@ F tool/tostr.awk e75472c2f98dd76e06b8c9c1367f4ab07e122d06
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
 F tool/warnings-clang.sh 9f406d66e750e8ac031c63a9ef3248aaa347ef2a
 F tool/warnings.sh fbc018d67fd7395f440c28f33ef0f94420226381
-P 17c30634a71051158f8d37fd51b3c2a125ad8bd2
-R 6c012a7774ed9e5a330a66726436b4a2
+P c1691d998a03fee3bef137ccf2e8ca45acac2df4
+R 84be2ca283aa4d12d0883d5cb3ef90ca
 U drh
-Z fcdcf01f58c77f738eb120329f0033fc
+Z 981c2603df115cccf0c78e5588d3bb18
index 1269d5372fb54440a231b43a4c7b6759be5ca78d..1b3a2f307ca8f641c3b8932585f6613a8830c9c5 100644 (file)
@@ -1 +1 @@
-c1691d998a03fee3bef137ccf2e8ca45acac2df4
\ No newline at end of file
+da52e6e8b490508bc1ee4700aa45a79f398363da
\ No newline at end of file
index 505941a3a7d644a616d632a292c02f132c3551e5..405ae5aec89b309345c027352bdad62c54ec9200 100644 (file)
@@ -48,10 +48,10 @@ typedef struct PGroup PGroup;
 */
 struct PGroup {
   sqlite3_mutex *mutex;          /* MUTEX_STATIC_LRU or NULL */
-  int nMaxPage;                  /* Sum of nMax for purgeable caches */
-  int nMinPage;                  /* Sum of nMin for purgeable caches */
-  int mxPinned;                  /* nMaxpage + 10 - nMinPage */
-  int nCurrentPage;              /* Number of purgeable pages allocated */
+  unsigned int nMaxPage;         /* Sum of nMax for purgeable caches */
+  unsigned int nMinPage;         /* Sum of nMin for purgeable caches */
+  unsigned int mxPinned;         /* nMaxpage + 10 - nMinPage */
+  unsigned int nCurrentPage;     /* Number of purgeable pages allocated */
   PgHdr1 *pLruHead, *pLruTail;   /* LRU list of unpinned pages */
 };
 
@@ -714,7 +714,7 @@ static sqlite3_pcache_page *pcache1Fetch(
   unsigned int iKey, 
   int createFlag
 ){
-  int nPinned;
+  unsigned int nPinned;
   PCache1 *pCache = (PCache1 *)p;
   PGroup *pGroup;
   PgHdr1 *pPage = 0;
@@ -749,13 +749,13 @@ static sqlite3_pcache_page *pcache1Fetch(
 #endif
 
   /* Step 3: Abort if createFlag is 1 but the cache is nearly full */
+  assert( pCache->nPage >= pCache->nRecyclable );
   nPinned = pCache->nPage - pCache->nRecyclable;
-  assert( nPinned>=0 );
   assert( pGroup->mxPinned == pGroup->nMaxPage + 10 - pGroup->nMinPage );
   assert( pCache->n90pct == pCache->nMax*9/10 );
   if( createFlag==1 && (
         nPinned>=pGroup->mxPinned
-     || nPinned>=(int)pCache->n90pct
+     || nPinned>=pCache->n90pct
      || pcache1UnderMemoryPressure(pCache)
   )){
     goto fetch_out;
@@ -928,7 +928,9 @@ static void pcache1Destroy(sqlite3_pcache *p){
   assert( pCache->bPurgeable || (pCache->nMax==0 && pCache->nMin==0) );
   pcache1EnterMutex(pGroup);
   pcache1TruncateUnsafe(pCache, 0);
+  assert( pGroup->nMaxPage >= pCache->nMax );
   pGroup->nMaxPage -= pCache->nMax;
+  assert( pGroup->nMinPage >= pCache->nMin );
   pGroup->nMinPage -= pCache->nMin;
   pGroup->mxPinned = pGroup->nMaxPage + 10 - pGroup->nMinPage;
   pcache1EnforceMaxPage(pGroup);
@@ -1010,8 +1012,8 @@ void sqlite3PcacheStats(
     nRecyclable++;
   }
   *pnCurrent = pcache1.grp.nCurrentPage;
-  *pnMax = pcache1.grp.nMaxPage;
-  *pnMin = pcache1.grp.nMinPage;
+  *pnMax = (int)pcache1.grp.nMaxPage;
+  *pnMin = (int)pcache1.grp.nMinPage;
   *pnRecyclable = nRecyclable;
 }
 #endif