-
- do {
- if( set->pool = bt_pinpool (bt, page_no) )
- set->page = bt_page (bt, set->pool, page_no);
- else
- break;
- set->latch = bt_pinlatch (bt, page_no);
- bt_lockpage (BtLockRead, set->latch);
- cnt += set->page->act;
- next = bt_getid (set->page->right);
- bt_unlockpage (BtLockRead, set->latch);
- bt_unpinlatch (set->latch);
- bt_unpinpool (set->pool);
- } while( page_no = next );
-
+ next = bt->mgr->latchmgr->nlatchpage + LATCH_page;
+ page_no = LEAF_page;
+
+ while( page_no < bt_getid(bt->mgr->latchmgr->alloc->right) ) {
+ pread (bt->mgr->idx, bt->frame, bt->mgr->page_size, page_no << bt->mgr->page_bits);
+ if( !bt->frame->free && !bt->frame->lvl )
+ cnt += bt->frame->act;
+ if( page_no > LEAF_page )
+ next = page_no + 1;
+ page_no = next;
+ }
+