Lines Matching defs:aPool

15173 ** We often identify a chunk by its index in mem3.aPool[].  When
15196 u32 next; /* Index in mem3.aPool[] of next free chunk */
15197 u32 prev; /* Index in mem3.aPool[] of previous free chunk */
15211 ** (in Mem3Blocks) pointed to by aPool less 2.
15214 Mem3Block *aPool;
15252 ** Unlink the chunk at mem3.aPool[i] from list it is currently
15256 u32 next = mem3.aPool[i].u.list.next;
15257 u32 prev = mem3.aPool[i].u.list.prev;
15262 mem3.aPool[prev].u.list.next = next;
15265 mem3.aPool[next].u.list.prev = prev;
15267 mem3.aPool[i].u.list.next = 0;
15268 mem3.aPool[i].u.list.prev = 0;
15278 assert( (mem3.aPool[i-1].u.hdr.size4x & 1)==0 );
15280 size = mem3.aPool[i-1].u.hdr.size4x/4;
15281 assert( size==mem3.aPool[i+size-1].u.hdr.prevSize );
15292 ** Link the chunk at mem3.aPool[i] so that is on the list rooted
15297 mem3.aPool[i].u.list.next = *pRoot;
15298 mem3.aPool[i].u.list.prev = 0;
15300 mem3.aPool[*pRoot].u.list.prev = i;
15313 assert( (mem3.aPool[i-1].u.hdr.size4x & 1)==0 );
15314 size = mem3.aPool[i-1].u.hdr.size4x/4;
15315 assert( size==mem3.aPool[i+size-1].u.hdr.prevSize );
15364 assert( mem3.aPool[i-1].u.hdr.size4x/4==nBlock );
15365 assert( mem3.aPool[i+nBlock-1].u.hdr.prevSize==nBlock );
15366 x = mem3.aPool[i-1].u.hdr.size4x;
15367 mem3.aPool[i-1].u.hdr.size4x = nBlock*4 | 1 | (x&2);
15368 mem3.aPool[i+nBlock-1].u.hdr.prevSize = nBlock;
15369 mem3.aPool[i+nBlock-1].u.hdr.size4x |= 2;
15370 return &mem3.aPool[i];
15393 mem3.aPool[mem3.iMaster+mem3.szMaster-1].u.hdr.prevSize = nBlock;
15394 mem3.aPool[mem3.iMaster+mem3.szMaster-1].u.hdr.size4x |= 2;
15395 mem3.aPool[newi-1].u.hdr.size4x = nBlock*4 + 1;
15397 mem3.aPool[newi-1].u.hdr.prevSize = mem3.szMaster;
15398 x = mem3.aPool[mem3.iMaster-1].u.hdr.size4x & 2;
15399 mem3.aPool[mem3.iMaster-1].u.hdr.size4x = mem3.szMaster*4 | x;
15403 return (void*)&mem3.aPool[newi];
15428 iNext = mem3.aPool[i].u.list.next;
15429 size = mem3.aPool[i-1].u.hdr.size4x;
15433 assert( i > mem3.aPool[i-1].u.hdr.prevSize );
15434 prev = i - mem3.aPool[i-1].u.hdr.prevSize;
15436 iNext = mem3.aPool[prev].u.list.next;
15440 x = mem3.aPool[prev-1].u.hdr.size4x & 2;
15441 mem3.aPool[prev-1].u.hdr.size4x = size*4 | x;
15442 mem3.aPool[prev+size-1].u.hdr.prevSize = size;
15489 for(i=mem3.aiHash[hash]; i>0; i=mem3.aPool[i].u.list.next){
15490 if( mem3.aPool[i-1].u.hdr.size4x/4==nBlock ){
15549 assert( p>mem3.aPool && p<&mem3.aPool[mem3.nPool] );
15550 i = p - mem3.aPool;
15551 assert( (mem3.aPool[i-1].u.hdr.size4x&1)==1 );
15552 size = mem3.aPool[i-1].u.hdr.size4x/4;
15554 mem3.aPool[i-1].u.hdr.size4x &= ~1;
15555 mem3.aPool[i+size-1].u.hdr.prevSize = size;
15556 mem3.aPool[i+size-1].u.hdr.size4x &= ~2;
15561 while( (mem3.aPool[mem3.iMaster-1].u.hdr.size4x&2)==0 ){
15562 size = mem3.aPool[mem3.iMaster-1].u.hdr.prevSize;
15566 x = mem3.aPool[mem3.iMaster-1].u.hdr.size4x & 2;
15567 mem3.aPool[mem3.iMaster-1].u.hdr.size4x = mem3.szMaster*4 | x;
15568 mem3.aPool[mem3.iMaster+mem3.szMaster-1].u.hdr.prevSize = mem3.szMaster;
15570 x = mem3.aPool[mem3.iMaster-1].u.hdr.size4x & 2;
15571 while( (mem3.aPool[mem3.iMaster+mem3.szMaster-1].u.hdr.size4x&1)==0 ){
15573 mem3.szMaster += mem3.aPool[mem3.iMaster+mem3.szMaster-1].u.hdr.size4x/4;
15574 mem3.aPool[mem3.iMaster-1].u.hdr.size4x = mem3.szMaster*4 | x;
15575 mem3.aPool[mem3.iMaster+mem3.szMaster-1].u.hdr.prevSize = mem3.szMaster;
15668 mem3.aPool = (Mem3Block *)sqlite3GlobalConfig.pHeap;
15675 mem3.aPool[0].u.hdr.size4x = (mem3.szMaster<<2) + 2;
15676 mem3.aPool[mem3.nPool].u.hdr.prevSize = mem3.nPool;
15677 mem3.aPool[mem3.nPool].u.hdr.size4x = 1;
15715 size = mem3.aPool[i-1].u.hdr.size4x;
15717 fprintf(out, "%p size error\n", &mem3.aPool[i]);
15721 if( (size&1)==0 && mem3.aPool[i+size/4-1].u.hdr.prevSize!=size/4 ){
15722 fprintf(out, "%p tail size does not match\n", &mem3.aPool[i]);
15726 if( ((mem3.aPool[i+size/4-1].u.hdr.size4x&2)>>1)!=(size&1) ){
15727 fprintf(out, "%p tail checkout bit is incorrect\n", &mem3.aPool[i]);
15732 fprintf(out, "%p %6d bytes checked out\n", &mem3.aPool[i], (size/4)*8-8);
15734 fprintf(out, "%p %6d bytes free%s\n", &mem3.aPool[i], (size/4)*8-8,
15741 for(j = mem3.aiSmall[i]; j>0; j=mem3.aPool[j].u.list.next){
15742 fprintf(out, " %p(%d)", &mem3.aPool[j],
15743 (mem3.aPool[j-1].u.hdr.size4x/4)*8-8);
15750 for(j = mem3.aiHash[i]; j>0; j=mem3.aPool[j].u.list.next){
15751 fprintf(out, " %p(%d)", &mem3.aPool[j],
15752 (mem3.aPool[j-1].u.hdr.size4x/4)*8-8);
15941 ** Unlink the chunk at mem5.aPool[i] from list it is currently
15963 ** Link the chunk at mem5.aPool[i] so that is on the iLogsize
16039 int i; /* Index of a mem5.aPool[] slot */