Lines Matching defs:aPool

65 ** We often identify a chunk by its index in mem3.aPool[].  When
88 u32 next; /* Index in mem3.aPool[] of next free chunk */
89 u32 prev; /* Index in mem3.aPool[] of previous free chunk */
103 ** (in Mem3Blocks) pointed to by aPool less 2.
106 Mem3Block *aPool;
144 ** Unlink the chunk at mem3.aPool[i] from list it is currently
148 u32 next = mem3.aPool[i].u.list.next;
149 u32 prev = mem3.aPool[i].u.list.prev;
154 mem3.aPool[prev].u.list.next = next;
157 mem3.aPool[next].u.list.prev = prev;
159 mem3.aPool[i].u.list.next = 0;
160 mem3.aPool[i].u.list.prev = 0;
170 assert( (mem3.aPool[i-1].u.hdr.size4x & 1)==0 );
172 size = mem3.aPool[i-1].u.hdr.size4x/4;
173 assert( size==mem3.aPool[i+size-1].u.hdr.prevSize );
184 ** Link the chunk at mem3.aPool[i] so that is on the list rooted
189 mem3.aPool[i].u.list.next = *pRoot;
190 mem3.aPool[i].u.list.prev = 0;
192 mem3.aPool[*pRoot].u.list.prev = i;
205 assert( (mem3.aPool[i-1].u.hdr.size4x & 1)==0 );
206 size = mem3.aPool[i-1].u.hdr.size4x/4;
207 assert( size==mem3.aPool[i+size-1].u.hdr.prevSize );
256 assert( mem3.aPool[i-1].u.hdr.size4x/4==nBlock );
257 assert( mem3.aPool[i+nBlock-1].u.hdr.prevSize==nBlock );
258 x = mem3.aPool[i-1].u.hdr.size4x;
259 mem3.aPool[i-1].u.hdr.size4x = nBlock*4 | 1 | (x&2);
260 mem3.aPool[i+nBlock-1].u.hdr.prevSize = nBlock;
261 mem3.aPool[i+nBlock-1].u.hdr.size4x |= 2;
262 return &mem3.aPool[i];
285 mem3.aPool[mem3.iMaster+mem3.szMaster-1].u.hdr.prevSize = nBlock;
286 mem3.aPool[mem3.iMaster+mem3.szMaster-1].u.hdr.size4x |= 2;
287 mem3.aPool[newi-1].u.hdr.size4x = nBlock*4 + 1;
289 mem3.aPool[newi-1].u.hdr.prevSize = mem3.szMaster;
290 x = mem3.aPool[mem3.iMaster-1].u.hdr.size4x & 2;
291 mem3.aPool[mem3.iMaster-1].u.hdr.size4x = mem3.szMaster*4 | x;
295 return (void*)&mem3.aPool[newi];
320 iNext = mem3.aPool[i].u.list.next;
321 size = mem3.aPool[i-1].u.hdr.size4x;
325 assert( i > mem3.aPool[i-1].u.hdr.prevSize );
326 prev = i - mem3.aPool[i-1].u.hdr.prevSize;
328 iNext = mem3.aPool[prev].u.list.next;
332 x = mem3.aPool[prev-1].u.hdr.size4x & 2;
333 mem3.aPool[prev-1].u.hdr.size4x = size*4 | x;
334 mem3.aPool[prev+size-1].u.hdr.prevSize = size;
381 for(i=mem3.aiHash[hash]; i>0; i=mem3.aPool[i].u.list.next){
382 if( mem3.aPool[i-1].u.hdr.size4x/4==nBlock ){
441 assert( p>mem3.aPool && p<&mem3.aPool[mem3.nPool] );
442 i = p - mem3.aPool;
443 assert( (mem3.aPool[i-1].u.hdr.size4x&1)==1 );
444 size = mem3.aPool[i-1].u.hdr.size4x/4;
446 mem3.aPool[i-1].u.hdr.size4x &= ~1;
447 mem3.aPool[i+size-1].u.hdr.prevSize = size;
448 mem3.aPool[i+size-1].u.hdr.size4x &= ~2;
453 while( (mem3.aPool[mem3.iMaster-1].u.hdr.size4x&2)==0 ){
454 size = mem3.aPool[mem3.iMaster-1].u.hdr.prevSize;
458 x = mem3.aPool[mem3.iMaster-1].u.hdr.size4x & 2;
459 mem3.aPool[mem3.iMaster-1].u.hdr.size4x = mem3.szMaster*4 | x;
460 mem3.aPool[mem3.iMaster+mem3.szMaster-1].u.hdr.prevSize = mem3.szMaster;
462 x = mem3.aPool[mem3.iMaster-1].u.hdr.size4x & 2;
463 while( (mem3.aPool[mem3.iMaster+mem3.szMaster-1].u.hdr.size4x&1)==0 ){
465 mem3.szMaster += mem3.aPool[mem3.iMaster+mem3.szMaster-1].u.hdr.size4x/4;
466 mem3.aPool[mem3.iMaster-1].u.hdr.size4x = mem3.szMaster*4 | x;
467 mem3.aPool[mem3.iMaster+mem3.szMaster-1].u.hdr.prevSize = mem3.szMaster;
560 mem3.aPool = (Mem3Block *)sqlite3GlobalConfig.pHeap;
567 mem3.aPool[0].u.hdr.size4x = (mem3.szMaster<<2) + 2;
568 mem3.aPool[mem3.nPool].u.hdr.prevSize = mem3.nPool;
569 mem3.aPool[mem3.nPool].u.hdr.size4x = 1;
607 size = mem3.aPool[i-1].u.hdr.size4x;
609 fprintf(out, "%p size error\n", &mem3.aPool[i]);
613 if( (size&1)==0 && mem3.aPool[i+size/4-1].u.hdr.prevSize!=size/4 ){
614 fprintf(out, "%p tail size does not match\n", &mem3.aPool[i]);
618 if( ((mem3.aPool[i+size/4-1].u.hdr.size4x&2)>>1)!=(size&1) ){
619 fprintf(out, "%p tail checkout bit is incorrect\n", &mem3.aPool[i]);
624 fprintf(out, "%p %6d bytes checked out\n", &mem3.aPool[i], (size/4)*8-8);
626 fprintf(out, "%p %6d bytes free%s\n", &mem3.aPool[i], (size/4)*8-8,
633 for(j = mem3.aiSmall[i]; j>0; j=mem3.aPool[j].u.list.next){
634 fprintf(out, " %p(%d)", &mem3.aPool[j],
635 (mem3.aPool[j-1].u.hdr.size4x/4)*8-8);
642 for(j = mem3.aiHash[i]; j>0; j=mem3.aPool[j].u.list.next){
643 fprintf(out, " %p(%d)", &mem3.aPool[j],
644 (mem3.aPool[j-1].u.hdr.size4x/4)*8-8);