pCache           10374 ext/sqlite3/libsqlite/sqlite3.c   PCache *pCache;                /* Cache that owns this page */
pCache           10467 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3PcacheIterateDirty(PCache *pCache, void (*xIter)(PgHdr *));
pCache           39283 ext/sqlite3/libsqlite/sqlite3.c   sqlite3_pcache *pCache;             /* Pluggable cache module */
pCache           39301 ext/sqlite3/libsqlite/sqlite3.c   PCache *p = pPage->pCache;
pCache           39361 ext/sqlite3/libsqlite/sqlite3.c   if( p->pCache->bPurgeable ){
pCache           39363 ext/sqlite3/libsqlite/sqlite3.c       p->pCache->pPage1 = 0;
pCache           39365 ext/sqlite3/libsqlite/sqlite3.c     sqlite3GlobalConfig.pcache2.xUnpin(p->pCache->pCache, p->pPage, 0);
pCache           39443 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PcacheSetPageSize(PCache *pCache, int szPage){
pCache           39444 ext/sqlite3/libsqlite/sqlite3.c   assert( pCache->nRef==0 && pCache->pDirty==0 );
pCache           39445 ext/sqlite3/libsqlite/sqlite3.c   if( pCache->szPage ){
pCache           39448 ext/sqlite3/libsqlite/sqlite3.c                 szPage, pCache->szExtra + ROUND8(sizeof(PgHdr)),
pCache           39449 ext/sqlite3/libsqlite/sqlite3.c                 pCache->bPurgeable
pCache           39452 ext/sqlite3/libsqlite/sqlite3.c     sqlite3GlobalConfig.pcache2.xCachesize(pNew, numberOfCachePages(pCache));
pCache           39453 ext/sqlite3/libsqlite/sqlite3.c     if( pCache->pCache ){
pCache           39454 ext/sqlite3/libsqlite/sqlite3.c       sqlite3GlobalConfig.pcache2.xDestroy(pCache->pCache);
pCache           39456 ext/sqlite3/libsqlite/sqlite3.c     pCache->pCache = pNew;
pCache           39457 ext/sqlite3/libsqlite/sqlite3.c     pCache->pPage1 = 0;
pCache           39458 ext/sqlite3/libsqlite/sqlite3.c     pCache->szPage = szPage;
pCache           39488 ext/sqlite3/libsqlite/sqlite3.c   PCache *pCache,       /* Obtain the page from this cache */
pCache           39494 ext/sqlite3/libsqlite/sqlite3.c   assert( pCache!=0 );
pCache           39495 ext/sqlite3/libsqlite/sqlite3.c   assert( pCache->pCache!=0 );
pCache           39506 ext/sqlite3/libsqlite/sqlite3.c   eCreate = createFlag & pCache->eCreate;
pCache           39508 ext/sqlite3/libsqlite/sqlite3.c   assert( createFlag==0 || pCache->eCreate==eCreate );
pCache           39509 ext/sqlite3/libsqlite/sqlite3.c   assert( createFlag==0 || eCreate==1+(!pCache->bPurgeable||!pCache->pDirty) );
pCache           39510 ext/sqlite3/libsqlite/sqlite3.c   return sqlite3GlobalConfig.pcache2.xFetch(pCache->pCache, pgno, eCreate);
pCache           39525 ext/sqlite3/libsqlite/sqlite3.c   PCache *pCache,                 /* Obtain the page from this cache */
pCache           39530 ext/sqlite3/libsqlite/sqlite3.c   if( pCache->eCreate==2 ) return 0;
pCache           39538 ext/sqlite3/libsqlite/sqlite3.c   for(pPg=pCache->pSynced; 
pCache           39542 ext/sqlite3/libsqlite/sqlite3.c   pCache->pSynced = pPg;
pCache           39544 ext/sqlite3/libsqlite/sqlite3.c     for(pPg=pCache->pDirtyTail; pPg && pPg->nRef; pPg=pPg->pDirtyPrev);
pCache           39552 ext/sqlite3/libsqlite/sqlite3.c                 sqlite3GlobalConfig.pcache.xPagecount(pCache->pCache),
pCache           39553 ext/sqlite3/libsqlite/sqlite3.c                 numberOfCachePages(pCache));
pCache           39555 ext/sqlite3/libsqlite/sqlite3.c     rc = pCache->xStress(pCache->pStress, pPg);
pCache           39560 ext/sqlite3/libsqlite/sqlite3.c   *ppPage = sqlite3GlobalConfig.pcache2.xFetch(pCache->pCache, pgno, 2);
pCache           39574 ext/sqlite3/libsqlite/sqlite3.c   PCache *pCache,             /* Obtain the page from this cache */
pCache           39586 ext/sqlite3/libsqlite/sqlite3.c   memset(pPgHdr->pExtra, 0, pCache->szExtra);
pCache           39587 ext/sqlite3/libsqlite/sqlite3.c   pPgHdr->pCache = pCache;
pCache           39589 ext/sqlite3/libsqlite/sqlite3.c   return sqlite3PcacheFetchFinish(pCache,pgno,pPage);
pCache           39599 ext/sqlite3/libsqlite/sqlite3.c   PCache *pCache,             /* Obtain the page from this cache */
pCache           39609 ext/sqlite3/libsqlite/sqlite3.c     return pcacheFetchFinishWithInit(pCache, pgno, pPage);
pCache           39612 ext/sqlite3/libsqlite/sqlite3.c     pCache->nRef++;
pCache           39616 ext/sqlite3/libsqlite/sqlite3.c     pCache->pPage1 = pPgHdr;
pCache           39629 ext/sqlite3/libsqlite/sqlite3.c     p->pCache->nRef--;
pCache           39657 ext/sqlite3/libsqlite/sqlite3.c   p->pCache->nRef--;
pCache           39659 ext/sqlite3/libsqlite/sqlite3.c     p->pCache->pPage1 = 0;
pCache           39661 ext/sqlite3/libsqlite/sqlite3.c   sqlite3GlobalConfig.pcache2.xUnpin(p->pCache->pCache, p->pPage, 1);
pCache           39694 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3PcacheCleanAll(PCache *pCache){
pCache           39696 ext/sqlite3/libsqlite/sqlite3.c   while( (p = pCache->pDirty)!=0 ){
pCache           39704 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3PcacheClearSyncFlags(PCache *pCache){
pCache           39706 ext/sqlite3/libsqlite/sqlite3.c   for(p=pCache->pDirty; p; p=p->pDirtyNext){
pCache           39709 ext/sqlite3/libsqlite/sqlite3.c   pCache->pSynced = pCache->pDirtyTail;
pCache           39716 ext/sqlite3/libsqlite/sqlite3.c   PCache *pCache = p->pCache;
pCache           39719 ext/sqlite3/libsqlite/sqlite3.c   sqlite3GlobalConfig.pcache2.xRekey(pCache->pCache, p->pPage, p->pgno,newPgno);
pCache           39735 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3PcacheTruncate(PCache *pCache, Pgno pgno){
pCache           39736 ext/sqlite3/libsqlite/sqlite3.c   if( pCache->pCache ){
pCache           39739 ext/sqlite3/libsqlite/sqlite3.c     for(p=pCache->pDirty; p; p=pNext){
pCache           39751 ext/sqlite3/libsqlite/sqlite3.c     if( pgno==0 && pCache->pPage1 ){
pCache           39752 ext/sqlite3/libsqlite/sqlite3.c       memset(pCache->pPage1->pData, 0, pCache->szPage);
pCache           39755 ext/sqlite3/libsqlite/sqlite3.c     sqlite3GlobalConfig.pcache2.xTruncate(pCache->pCache, pgno+1);
pCache           39762 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3PcacheClose(PCache *pCache){
pCache           39763 ext/sqlite3/libsqlite/sqlite3.c   assert( pCache->pCache!=0 );
pCache           39764 ext/sqlite3/libsqlite/sqlite3.c   sqlite3GlobalConfig.pcache2.xDestroy(pCache->pCache);
pCache           39770 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3PcacheClear(PCache *pCache){
pCache           39771 ext/sqlite3/libsqlite/sqlite3.c   sqlite3PcacheTruncate(pCache, 0);
pCache           39847 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE PgHdr *sqlite3PcacheDirtyList(PCache *pCache){
pCache           39849 ext/sqlite3/libsqlite/sqlite3.c   for(p=pCache->pDirty; p; p=p->pDirtyNext){
pCache           39852 ext/sqlite3/libsqlite/sqlite3.c   return pcacheSortDirtyList(pCache->pDirty);
pCache           39858 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PcacheRefCount(PCache *pCache){
pCache           39859 ext/sqlite3/libsqlite/sqlite3.c   return pCache->nRef;
pCache           39872 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PcachePagecount(PCache *pCache){
pCache           39873 ext/sqlite3/libsqlite/sqlite3.c   assert( pCache->pCache!=0 );
pCache           39874 ext/sqlite3/libsqlite/sqlite3.c   return sqlite3GlobalConfig.pcache2.xPagecount(pCache->pCache);
pCache           39881 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE int sqlite3PcacheGetCachesize(PCache *pCache){
pCache           39882 ext/sqlite3/libsqlite/sqlite3.c   return numberOfCachePages(pCache);
pCache           39889 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3PcacheSetCachesize(PCache *pCache, int mxPage){
pCache           39890 ext/sqlite3/libsqlite/sqlite3.c   assert( pCache->pCache!=0 );
pCache           39891 ext/sqlite3/libsqlite/sqlite3.c   pCache->szCache = mxPage;
pCache           39892 ext/sqlite3/libsqlite/sqlite3.c   sqlite3GlobalConfig.pcache2.xCachesize(pCache->pCache,
pCache           39893 ext/sqlite3/libsqlite/sqlite3.c                                          numberOfCachePages(pCache));
pCache           39899 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3PcacheShrink(PCache *pCache){
pCache           39900 ext/sqlite3/libsqlite/sqlite3.c   assert( pCache->pCache!=0 );
pCache           39901 ext/sqlite3/libsqlite/sqlite3.c   sqlite3GlobalConfig.pcache2.xShrink(pCache->pCache);
pCache           39917 ext/sqlite3/libsqlite/sqlite3.c SQLITE_PRIVATE void sqlite3PcacheIterateDirty(PCache *pCache, void (*xIter)(PgHdr *)){
pCache           39919 ext/sqlite3/libsqlite/sqlite3.c   for(pDirty=pCache->pDirty; pDirty; pDirty=pDirty->pDirtyNext){
pCache           40026 ext/sqlite3/libsqlite/sqlite3.c   PCache1 *pCache;               /* Cache that currently owns this page */
pCache           40207 ext/sqlite3/libsqlite/sqlite3.c static PgHdr1 *pcache1AllocPage(PCache1 *pCache){
pCache           40214 ext/sqlite3/libsqlite/sqlite3.c   assert( sqlite3_mutex_held(pCache->pGroup->mutex) );
pCache           40215 ext/sqlite3/libsqlite/sqlite3.c   pcache1LeaveMutex(pCache->pGroup);
pCache           40217 ext/sqlite3/libsqlite/sqlite3.c   pPg = pcache1Alloc(pCache->szPage);
pCache           40218 ext/sqlite3/libsqlite/sqlite3.c   p = sqlite3Malloc(sizeof(PgHdr1) + pCache->szExtra);
pCache           40225 ext/sqlite3/libsqlite/sqlite3.c   pPg = pcache1Alloc(ROUND8(sizeof(PgHdr1)) + pCache->szPage + pCache->szExtra);
pCache           40226 ext/sqlite3/libsqlite/sqlite3.c   p = (PgHdr1 *)&((u8 *)pPg)[pCache->szPage];
pCache           40228 ext/sqlite3/libsqlite/sqlite3.c   pcache1EnterMutex(pCache->pGroup);
pCache           40233 ext/sqlite3/libsqlite/sqlite3.c     if( pCache->bPurgeable ){
pCache           40234 ext/sqlite3/libsqlite/sqlite3.c       pCache->pGroup->nCurrentPage++;
pCache           40250 ext/sqlite3/libsqlite/sqlite3.c     PCache1 *pCache = p->pCache;
pCache           40251 ext/sqlite3/libsqlite/sqlite3.c     assert( sqlite3_mutex_held(p->pCache->pGroup->mutex) );
pCache           40256 ext/sqlite3/libsqlite/sqlite3.c     if( pCache->bPurgeable ){
pCache           40257 ext/sqlite3/libsqlite/sqlite3.c       pCache->pGroup->nCurrentPage--;
pCache           40295 ext/sqlite3/libsqlite/sqlite3.c static int pcache1UnderMemoryPressure(PCache1 *pCache){
pCache           40296 ext/sqlite3/libsqlite/sqlite3.c   if( pcache1.nSlot && (pCache->szPage+pCache->szExtra)<=pcache1.szSlot ){
pCache           40354 ext/sqlite3/libsqlite/sqlite3.c   PCache1 *pCache;
pCache           40359 ext/sqlite3/libsqlite/sqlite3.c   pCache = pPage->pCache;
pCache           40360 ext/sqlite3/libsqlite/sqlite3.c   pGroup = pCache->pGroup;
pCache           40377 ext/sqlite3/libsqlite/sqlite3.c   pCache->nRecyclable--;
pCache           40389 ext/sqlite3/libsqlite/sqlite3.c   PCache1 *pCache = pPage->pCache;
pCache           40392 ext/sqlite3/libsqlite/sqlite3.c   assert( sqlite3_mutex_held(pCache->pGroup->mutex) );
pCache           40393 ext/sqlite3/libsqlite/sqlite3.c   h = pPage->iKey % pCache->nHash;
pCache           40394 ext/sqlite3/libsqlite/sqlite3.c   for(pp=&pCache->apHash[h]; (*pp)!=pPage; pp=&(*pp)->pNext);
pCache           40397 ext/sqlite3/libsqlite/sqlite3.c   pCache->nPage--;
pCache           40408 ext/sqlite3/libsqlite/sqlite3.c     assert( p->pCache->pGroup==pGroup );
pCache           40424 ext/sqlite3/libsqlite/sqlite3.c   PCache1 *pCache,             /* The cache to truncate */
pCache           40429 ext/sqlite3/libsqlite/sqlite3.c   assert( sqlite3_mutex_held(pCache->pGroup->mutex) );
pCache           40430 ext/sqlite3/libsqlite/sqlite3.c   for(h=0; h<pCache->nHash; h++){
pCache           40431 ext/sqlite3/libsqlite/sqlite3.c     PgHdr1 **pp = &pCache->apHash[h]; 
pCache           40435 ext/sqlite3/libsqlite/sqlite3.c         pCache->nPage--;
pCache           40445 ext/sqlite3/libsqlite/sqlite3.c   assert( pCache->nPage==nPage );
pCache           40487 ext/sqlite3/libsqlite/sqlite3.c   PCache1 *pCache;      /* The newly created page cache */
pCache           40513 ext/sqlite3/libsqlite/sqlite3.c   pCache = (PCache1 *)sqlite3MallocZero(sz);
pCache           40514 ext/sqlite3/libsqlite/sqlite3.c   if( pCache ){
pCache           40516 ext/sqlite3/libsqlite/sqlite3.c       pGroup = (PGroup*)&pCache[1];
pCache           40521 ext/sqlite3/libsqlite/sqlite3.c     pCache->pGroup = pGroup;
pCache           40522 ext/sqlite3/libsqlite/sqlite3.c     pCache->szPage = szPage;
pCache           40523 ext/sqlite3/libsqlite/sqlite3.c     pCache->szExtra = szExtra;
pCache           40524 ext/sqlite3/libsqlite/sqlite3.c     pCache->bPurgeable = (bPurgeable ? 1 : 0);
pCache           40526 ext/sqlite3/libsqlite/sqlite3.c     pcache1ResizeHash(pCache);
pCache           40528 ext/sqlite3/libsqlite/sqlite3.c       pCache->nMin = 10;
pCache           40529 ext/sqlite3/libsqlite/sqlite3.c       pGroup->nMinPage += pCache->nMin;
pCache           40533 ext/sqlite3/libsqlite/sqlite3.c     if( pCache->nHash==0 ){
pCache           40534 ext/sqlite3/libsqlite/sqlite3.c       pcache1Destroy((sqlite3_pcache*)pCache);
pCache           40535 ext/sqlite3/libsqlite/sqlite3.c       pCache = 0;
pCache           40538 ext/sqlite3/libsqlite/sqlite3.c   return (sqlite3_pcache *)pCache;
pCache           40547 ext/sqlite3/libsqlite/sqlite3.c   PCache1 *pCache = (PCache1 *)p;
pCache           40548 ext/sqlite3/libsqlite/sqlite3.c   if( pCache->bPurgeable ){
pCache           40549 ext/sqlite3/libsqlite/sqlite3.c     PGroup *pGroup = pCache->pGroup;
pCache           40551 ext/sqlite3/libsqlite/sqlite3.c     pGroup->nMaxPage += (nMax - pCache->nMax);
pCache           40553 ext/sqlite3/libsqlite/sqlite3.c     pCache->nMax = nMax;
pCache           40554 ext/sqlite3/libsqlite/sqlite3.c     pCache->n90pct = pCache->nMax*9/10;
pCache           40566 ext/sqlite3/libsqlite/sqlite3.c   PCache1 *pCache = (PCache1*)p;
pCache           40567 ext/sqlite3/libsqlite/sqlite3.c   if( pCache->bPurgeable ){
pCache           40568 ext/sqlite3/libsqlite/sqlite3.c     PGroup *pGroup = pCache->pGroup;
pCache           40584 ext/sqlite3/libsqlite/sqlite3.c   PCache1 *pCache = (PCache1*)p;
pCache           40585 ext/sqlite3/libsqlite/sqlite3.c   pcache1EnterMutex(pCache->pGroup);
pCache           40586 ext/sqlite3/libsqlite/sqlite3.c   n = pCache->nPage;
pCache           40587 ext/sqlite3/libsqlite/sqlite3.c   pcache1LeaveMutex(pCache->pGroup);
pCache           40601 ext/sqlite3/libsqlite/sqlite3.c   PCache1 *pCache, 
pCache           40606 ext/sqlite3/libsqlite/sqlite3.c   PGroup *pGroup = pCache->pGroup;
pCache           40610 ext/sqlite3/libsqlite/sqlite3.c   assert( pCache->nPage >= pCache->nRecyclable );
pCache           40611 ext/sqlite3/libsqlite/sqlite3.c   nPinned = pCache->nPage - pCache->nRecyclable;
pCache           40613 ext/sqlite3/libsqlite/sqlite3.c   assert( pCache->n90pct == pCache->nMax*9/10 );
pCache           40616 ext/sqlite3/libsqlite/sqlite3.c      || nPinned>=pCache->n90pct
pCache           40617 ext/sqlite3/libsqlite/sqlite3.c      || (pcache1UnderMemoryPressure(pCache) && pCache->nRecyclable<nPinned)
pCache           40622 ext/sqlite3/libsqlite/sqlite3.c   if( pCache->nPage>=pCache->nHash ) pcache1ResizeHash(pCache);
pCache           40623 ext/sqlite3/libsqlite/sqlite3.c   assert( pCache->nHash>0 && pCache->apHash );
pCache           40626 ext/sqlite3/libsqlite/sqlite3.c   if( pCache->bPurgeable && pGroup->pLruTail && (
pCache           40627 ext/sqlite3/libsqlite/sqlite3.c          (pCache->nPage+1>=pCache->nMax)
pCache           40629 ext/sqlite3/libsqlite/sqlite3.c       || pcache1UnderMemoryPressure(pCache)
pCache           40636 ext/sqlite3/libsqlite/sqlite3.c     pOther = pPage->pCache;
pCache           40640 ext/sqlite3/libsqlite/sqlite3.c     assert( (pCache->szPage & (pCache->szPage-1))==0 && pCache->szPage>=512 );
pCache           40641 ext/sqlite3/libsqlite/sqlite3.c     assert( pCache->szExtra<512 );
pCache           40645 ext/sqlite3/libsqlite/sqlite3.c     if( pOther->szPage+pOther->szExtra != pCache->szPage+pCache->szExtra ){
pCache           40649 ext/sqlite3/libsqlite/sqlite3.c       pGroup->nCurrentPage -= (pOther->bPurgeable - pCache->bPurgeable);
pCache           40658 ext/sqlite3/libsqlite/sqlite3.c     pPage = pcache1AllocPage(pCache);
pCache           40663 ext/sqlite3/libsqlite/sqlite3.c     unsigned int h = iKey % pCache->nHash;
pCache           40664 ext/sqlite3/libsqlite/sqlite3.c     pCache->nPage++;
pCache           40666 ext/sqlite3/libsqlite/sqlite3.c     pPage->pNext = pCache->apHash[h];
pCache           40667 ext/sqlite3/libsqlite/sqlite3.c     pPage->pCache = pCache;
pCache           40672 ext/sqlite3/libsqlite/sqlite3.c     pCache->apHash[h] = pPage;
pCache           40673 ext/sqlite3/libsqlite/sqlite3.c     if( iKey>pCache->iMaxKey ){
pCache           40674 ext/sqlite3/libsqlite/sqlite3.c       pCache->iMaxKey = iKey;
pCache           40739 ext/sqlite3/libsqlite/sqlite3.c   PCache1 *pCache = (PCache1 *)p;
pCache           40743 ext/sqlite3/libsqlite/sqlite3.c   assert( pCache->bPurgeable || createFlag!=1 );
pCache           40744 ext/sqlite3/libsqlite/sqlite3.c   assert( pCache->bPurgeable || pCache->nMin==0 );
pCache           40745 ext/sqlite3/libsqlite/sqlite3.c   assert( pCache->bPurgeable==0 || pCache->nMin==10 );
pCache           40746 ext/sqlite3/libsqlite/sqlite3.c   assert( pCache->nMin==0 || pCache->bPurgeable );
pCache           40747 ext/sqlite3/libsqlite/sqlite3.c   assert( pCache->nHash>0 );
pCache           40748 ext/sqlite3/libsqlite/sqlite3.c   pcache1EnterMutex(pCache->pGroup);
pCache           40751 ext/sqlite3/libsqlite/sqlite3.c   pPage = pCache->apHash[iKey % pCache->nHash];
pCache           40759 ext/sqlite3/libsqlite/sqlite3.c     pPage = pcache1FetchStage2(pCache, iKey, createFlag);
pCache           40761 ext/sqlite3/libsqlite/sqlite3.c   assert( pPage==0 || pCache->iMaxKey>=iKey );
pCache           40762 ext/sqlite3/libsqlite/sqlite3.c   pcache1LeaveMutex(pCache->pGroup);
pCache           40777 ext/sqlite3/libsqlite/sqlite3.c   PCache1 *pCache = (PCache1 *)p;
pCache           40779 ext/sqlite3/libsqlite/sqlite3.c   PGroup *pGroup = pCache->pGroup;
pCache           40781 ext/sqlite3/libsqlite/sqlite3.c   assert( pPage->pCache==pCache );
pCache           40804 ext/sqlite3/libsqlite/sqlite3.c     pCache->nRecyclable++;
pCache           40808 ext/sqlite3/libsqlite/sqlite3.c   pcache1LeaveMutex(pCache->pGroup);
pCache           40820 ext/sqlite3/libsqlite/sqlite3.c   PCache1 *pCache = (PCache1 *)p;
pCache           40825 ext/sqlite3/libsqlite/sqlite3.c   assert( pPage->pCache==pCache );
pCache           40827 ext/sqlite3/libsqlite/sqlite3.c   pcache1EnterMutex(pCache->pGroup);
pCache           40829 ext/sqlite3/libsqlite/sqlite3.c   h = iOld%pCache->nHash;
pCache           40830 ext/sqlite3/libsqlite/sqlite3.c   pp = &pCache->apHash[h];
pCache           40836 ext/sqlite3/libsqlite/sqlite3.c   h = iNew%pCache->nHash;
pCache           40838 ext/sqlite3/libsqlite/sqlite3.c   pPage->pNext = pCache->apHash[h];
pCache           40839 ext/sqlite3/libsqlite/sqlite3.c   pCache->apHash[h] = pPage;
pCache           40840 ext/sqlite3/libsqlite/sqlite3.c   if( iNew>pCache->iMaxKey ){
pCache           40841 ext/sqlite3/libsqlite/sqlite3.c     pCache->iMaxKey = iNew;
pCache           40844 ext/sqlite3/libsqlite/sqlite3.c   pcache1LeaveMutex(pCache->pGroup);
pCache           40855 ext/sqlite3/libsqlite/sqlite3.c   PCache1 *pCache = (PCache1 *)p;
pCache           40856 ext/sqlite3/libsqlite/sqlite3.c   pcache1EnterMutex(pCache->pGroup);
pCache           40857 ext/sqlite3/libsqlite/sqlite3.c   if( iLimit<=pCache->iMaxKey ){
pCache           40858 ext/sqlite3/libsqlite/sqlite3.c     pcache1TruncateUnsafe(pCache, iLimit);
pCache           40859 ext/sqlite3/libsqlite/sqlite3.c     pCache->iMaxKey = iLimit-1;
pCache           40861 ext/sqlite3/libsqlite/sqlite3.c   pcache1LeaveMutex(pCache->pGroup);
pCache           40870 ext/sqlite3/libsqlite/sqlite3.c   PCache1 *pCache = (PCache1 *)p;
pCache           40871 ext/sqlite3/libsqlite/sqlite3.c   PGroup *pGroup = pCache->pGroup;
pCache           40872 ext/sqlite3/libsqlite/sqlite3.c   assert( pCache->bPurgeable || (pCache->nMax==0 && pCache->nMin==0) );
pCache           40874 ext/sqlite3/libsqlite/sqlite3.c   pcache1TruncateUnsafe(pCache, 0);
pCache           40875 ext/sqlite3/libsqlite/sqlite3.c   assert( pGroup->nMaxPage >= pCache->nMax );
pCache           40876 ext/sqlite3/libsqlite/sqlite3.c   pGroup->nMaxPage -= pCache->nMax;
pCache           40877 ext/sqlite3/libsqlite/sqlite3.c   assert( pGroup->nMinPage >= pCache->nMin );
pCache           40878 ext/sqlite3/libsqlite/sqlite3.c   pGroup->nMinPage -= pCache->nMin;
pCache           40882 ext/sqlite3/libsqlite/sqlite3.c   sqlite3_free(pCache->apHash);
pCache           40883 ext/sqlite3/libsqlite/sqlite3.c   sqlite3_free(pCache);