diff options
author | Ben Johnson <benbjohnson@yahoo.com> | 2014-03-21 22:34:54 -0600 |
---|---|---|
committer | Ben Johnson <benbjohnson@yahoo.com> | 2014-03-21 22:34:54 -0600 |
commit | 0e4d77d424b2f18c76da7643de88b462b86310f2 (patch) | |
tree | 3b2e834d1563bc2ce856f224973cc5d262a2a708 /freelist.go | |
parent | Add 'bolt keys'. (diff) | |
download | dedo-0e4d77d424b2f18c76da7643de88b462b86310f2.tar.gz dedo-0e4d77d424b2f18c76da7643de88b462b86310f2.tar.xz |
Add 'bolt pages'.
Diffstat (limited to 'freelist.go')
-rw-r--r-- | freelist.go | 17 |
1 files changed, 17 insertions, 0 deletions
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] |