- uid off = page_no << bt->page_bits;
-#ifdef unix
- pread (bt->idx, bt->frame, bt->page_size, off);
-#else
- DWORD amt[1];
-
- SetFilePointer (bt->idx, (long)off, NULL, FILE_BEGIN);
-
- if( !ReadFile(bt->idx, bt->frame, bt->page_size, amt, NULL))
- fprintf (stderr, "unable to read page %.8x", page_no);
-
- if( *amt < bt->page_size )
- fprintf (stderr, "unable to read page %.8x", page_no);
-#endif
- if( !bt->frame->free && !bt->frame->lvl )
- cnt += bt->frame->act;
+ BtLatchSet *latch;
+ BtPage page;
+ if( latch = bt_pinlatch (bt, page_no) )
+ page = bt_mappage (bt, latch);
+ if( !page->free && !page->lvl )
+ cnt += page->act;