From 0e4d77d424b2f18c76da7643de88b462b86310f2 Mon Sep 17 00:00:00 2001 From: Ben Johnson Date: Fri, 21 Mar 2014 22:34:54 -0600 Subject: Add 'bolt pages'. --- freelist.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'freelist.go') diff --git a/freelist.go b/freelist.go index 636ed22..d0b1492 100644 --- a/freelist.go +++ b/freelist.go @@ -70,6 +70,23 @@ func (f *freelist) release(txid txid) { sort.Sort(reverseSortedPgids(f.ids)) } +// isFree returns whether a given page is in the free list. +func (f *freelist) isFree(pgid pgid) bool { + for _, id := range f.ids { + if id == pgid { + return true + } + } + for _, m := range f.pending { + for _, id := range m { + if id == pgid { + return true + } + } + } + return false +} + // read initializes the freelist from a freelist page. func (f *freelist) read(p *page) { ids := ((*[maxAllocSize]pgid)(unsafe.Pointer(&p.ptr)))[0:p.count] -- cgit v1.2.3