Lines Matching refs:aPool
22272 ** We often identify a chunk by its index in mem3.aPool[]. When
22295 u32 next; /* Index in mem3.aPool[] of next free chunk */
22296 u32 prev; /* Index in mem3.aPool[] of previous free chunk */
22310 ** (in Mem3Blocks) pointed to by aPool less 2.
22313 Mem3Block *aPool;
22351 ** Unlink the chunk at mem3.aPool[i] from list it is currently
22355 u32 next = mem3.aPool[i].u.list.next;
22356 u32 prev = mem3.aPool[i].u.list.prev;
22361 mem3.aPool[prev].u.list.next = next;
22364 mem3.aPool[next].u.list.prev = prev;
22366 mem3.aPool[i].u.list.next = 0;
22367 mem3.aPool[i].u.list.prev = 0;
22377 assert( (mem3.aPool[i-1].u.hdr.size4x & 1)==0 );
22379 size = mem3.aPool[i-1].u.hdr.size4x/4;
22380 assert( size==mem3.aPool[i+size-1].u.hdr.prevSize );
22391 ** Link the chunk at mem3.aPool[i] so that is on the list rooted
22396 mem3.aPool[i].u.list.next = *pRoot;
22397 mem3.aPool[i].u.list.prev = 0;
22399 mem3.aPool[*pRoot].u.list.prev = i;
22412 assert( (mem3.aPool[i-1].u.hdr.size4x & 1)==0 );
22413 size = mem3.aPool[i-1].u.hdr.size4x/4;
22414 assert( size==mem3.aPool[i+size-1].u.hdr.prevSize );
22463 assert( mem3.aPool[i-1].u.hdr.size4x/4==nBlock );
22464 assert( mem3.aPool[i+nBlock-1].u.hdr.prevSize==nBlock );
22465 x = mem3.aPool[i-1].u.hdr.size4x;
22466 mem3.aPool[i-1].u.hdr.size4x = nBlock*4 | 1 | (x&2);
22467 mem3.aPool[i+nBlock-1].u.hdr.prevSize = nBlock;
22468 mem3.aPool[i+nBlock-1].u.hdr.size4x |= 2;
22469 return &mem3.aPool[i];
22492 mem3.aPool[mem3.iMaster+mem3.szMaster-1].u.hdr.prevSize = nBlock;
22493 mem3.aPool[mem3.iMaster+mem3.szMaster-1].u.hdr.size4x |= 2;
22494 mem3.aPool[newi-1].u.hdr.size4x = nBlock*4 + 1;
22496 mem3.aPool[newi-1].u.hdr.prevSize = mem3.szMaster;
22497 x = mem3.aPool[mem3.iMaster-1].u.hdr.size4x & 2;
22498 mem3.aPool[mem3.iMaster-1].u.hdr.size4x = mem3.szMaster*4 | x;
22502 return (void*)&mem3.aPool[newi];
22527 iNext = mem3.aPool[i].u.list.next;
22528 size = mem3.aPool[i-1].u.hdr.size4x;
22532 assert( i > mem3.aPool[i-1].u.hdr.prevSize );
22533 prev = i - mem3.aPool[i-1].u.hdr.prevSize;
22535 iNext = mem3.aPool[prev].u.list.next;
22539 x = mem3.aPool[prev-1].u.hdr.size4x & 2;
22540 mem3.aPool[prev-1].u.hdr.size4x = size*4 | x;
22541 mem3.aPool[prev+size-1].u.hdr.prevSize = size;
22588 for(i=mem3.aiHash[hash]; i>0; i=mem3.aPool[i].u.list.next){
22589 if( mem3.aPool[i-1].u.hdr.size4x/4==nBlock ){
22648 assert( p>mem3.aPool && p<&mem3.aPool[mem3.nPool] );
22649 i = p - mem3.aPool;
22650 assert( (mem3.aPool[i-1].u.hdr.size4x&1)==1 );
22651 size = mem3.aPool[i-1].u.hdr.size4x/4;
22653 mem3.aPool[i-1].u.hdr.size4x &= ~1;
22654 mem3.aPool[i+size-1].u.hdr.prevSize = size;
22655 mem3.aPool[i+size-1].u.hdr.size4x &= ~2;
22660 while( (mem3.aPool[mem3.iMaster-1].u.hdr.size4x&2)==0 ){
22661 size = mem3.aPool[mem3.iMaster-1].u.hdr.prevSize;
22665 x = mem3.aPool[mem3.iMaster-1].u.hdr.size4x & 2;
22666 mem3.aPool[mem3.iMaster-1].u.hdr.size4x = mem3.szMaster*4 | x;
22667 mem3.aPool[mem3.iMaster+mem3.szMaster-1].u.hdr.prevSize = mem3.szMaster;
22669 x = mem3.aPool[mem3.iMaster-1].u.hdr.size4x & 2;
22670 while( (mem3.aPool[mem3.iMaster+mem3.szMaster-1].u.hdr.size4x&1)==0 ){
22672 mem3.szMaster += mem3.aPool[mem3.iMaster+mem3.szMaster-1].u.hdr.size4x/4;
22673 mem3.aPool[mem3.iMaster-1].u.hdr.size4x = mem3.szMaster*4 | x;
22674 mem3.aPool[mem3.iMaster+mem3.szMaster-1].u.hdr.prevSize = mem3.szMaster;
22767 mem3.aPool = (Mem3Block *)sqlite3GlobalConfig.pHeap;
22774 mem3.aPool[0].u.hdr.size4x = (mem3.szMaster<<2) + 2;
22775 mem3.aPool[mem3.nPool].u.hdr.prevSize = mem3.nPool;
22776 mem3.aPool[mem3.nPool].u.hdr.size4x = 1;
22814 size = mem3.aPool[i-1].u.hdr.size4x;
22816 fprintf(out, "%p size error\n", &mem3.aPool[i]);
22820 if( (size&1)==0 && mem3.aPool[i+size/4-1].u.hdr.prevSize!=size/4 ){
22821 fprintf(out, "%p tail size does not match\n", &mem3.aPool[i]);
22825 if( ((mem3.aPool[i+size/4-1].u.hdr.size4x&2)>>1)!=(size&1) ){
22826 fprintf(out, "%p tail checkout bit is incorrect\n", &mem3.aPool[i]);
22831 fprintf(out, "%p %6d bytes checked out\n", &mem3.aPool[i], (size/4)*8-8);
22833 fprintf(out, "%p %6d bytes free%s\n", &mem3.aPool[i], (size/4)*8-8,
22840 for(j = mem3.aiSmall[i]; j>0; j=mem3.aPool[j].u.list.next){
22841 fprintf(out, " %p(%d)", &mem3.aPool[j],
22842 (mem3.aPool[j-1].u.hdr.size4x/4)*8-8);
22849 for(j = mem3.aiHash[i]; j>0; j=mem3.aPool[j].u.list.next){
22850 fprintf(out, " %p(%d)", &mem3.aPool[j],
22851 (mem3.aPool[j-1].u.hdr.size4x/4)*8-8);
23043 ** Unlink the chunk at mem5.aPool[i] from list it is currently
23065 ** Link the chunk at mem5.aPool[i] so that is on the iLogsize
23118 int i; /* Index of a mem5.aPool[] slot */