Lines Matching refs:pPage

391       PgHdr1 *pPage;
393 while( (pPage = pNext)!=0 ){
394 unsigned int h = pPage->iKey % nNew;
395 pNext = pPage->pNext;
396 pPage->pNext = apNew[h];
397 apNew[h] = pPage;
409 ** This function is used internally to remove the page pPage from the
410 ** PGroup LRU list, if is part of it. If pPage is not part of the PGroup
415 ** If pPage is NULL then this routine is a no-op.
417 static void pcache1PinPage(PgHdr1 *pPage){
421 if( pPage==0 ) return;
422 pCache = pPage->pCache;
425 if( pPage->pLruNext || pPage==pGroup->pLruTail ){
426 if( pPage->pLruPrev ){
427 pPage->pLruPrev->pLruNext = pPage->pLruNext;
429 if( pPage->pLruNext ){
430 pPage->pLruNext->pLruPrev = pPage->pLruPrev;
432 if( pGroup->pLruHead==pPage ){
433 pGroup->pLruHead = pPage->pLruNext;
435 if( pGroup->pLruTail==pPage ){
436 pGroup->pLruTail = pPage->pLruPrev;
438 pPage->pLruNext = 0;
439 pPage->pLruPrev = 0;
440 pPage->pCache->nRecyclable--;
451 static void pcache1RemoveFromHash(PgHdr1 *pPage){
453 PCache1 *pCache = pPage->pCache;
457 h = pPage->iKey % pCache->nHash;
458 for(pp=&pCache->apHash[h]; (*pp)!=pPage; pp=&(*pp)->pNext);
495 PgHdr1 *pPage;
496 while( (pPage = *pp)!=0 ){
497 if( pPage->iKey>=iLimit ){
499 *pp = pPage->pNext;
500 pcache1PinPage(pPage);
501 pcache1FreePage(pPage);
503 pp = &pPage->pNext;
686 PgHdr1 *pPage = 0;
697 for(pPage=pCache->apHash[h]; pPage&&pPage->iKey!=iKey; pPage=pPage->pNext);
701 if( pPage || createFlag==0 ){
702 pcache1PinPage(pPage);
742 pPage = pGroup->pLruTail;
743 pcache1RemoveFromHash(pPage);
744 pcache1PinPage(pPage);
745 if( (pOtherCache = pPage->pCache)->szPage!=pCache->szPage ){
746 pcache1FreePage(pPage);
747 pPage = 0;
757 if( !pPage ){
760 pPage = pcache1AllocPage(pCache);
765 if( pPage ){
768 pPage->iKey = iKey;
769 pPage->pNext = pCache->apHash[h];
770 pPage->pCache = pCache;
771 pPage->pLruPrev = 0;
772 pPage->pLruNext = 0;
773 *(void **)(PGHDR1_TO_PAGE(pPage)) = 0;
774 pCache->apHash[h] = pPage;
778 if( pPage && iKey>pCache->iMaxKey ){
782 return (pPage ? PGHDR1_TO_PAGE(pPage) : 0);
793 PgHdr1 *pPage = PAGE_TO_PGHDR1(pCache, pPg);
796 assert( pPage->pCache==pCache );
802 assert( pPage->pLruPrev==0 && pPage->pLruNext==0 );
803 assert( pGroup->pLruHead!=pPage && pGroup->pLruTail!=pPage );
806 pcache1RemoveFromHash(pPage);
807 pcache1FreePage(pPage);
811 pGroup->pLruHead->pLruPrev = pPage;
812 pPage->pLruNext = pGroup->pLruHead;
813 pGroup->pLruHead = pPage;
815 pGroup->pLruTail = pPage;
816 pGroup->pLruHead = pPage;
834 PgHdr1 *pPage = PAGE_TO_PGHDR1(pCache, pPg);
837 assert( pPage->iKey==iOld );
838 assert( pPage->pCache==pCache );
844 while( (*pp)!=pPage ){
847 *pp = pPage->pNext;
850 pPage->iKey = iNew;
851 pPage->pNext = pCache->apHash[h];
852 pCache->apHash[h] = pPage;