aboutsummaryrefslogtreecommitdiff
path: root/freelist.go
diff options
context:
space:
mode:
Diffstat (limited to 'freelist.go')
-rw-r--r--freelist.go13
1 files changed, 10 insertions, 3 deletions
diff --git a/freelist.go b/freelist.go
index 150e3e6..1346e82 100644
--- a/freelist.go
+++ b/freelist.go
@@ -1,6 +1,7 @@
package bolt
import (
+ "fmt"
"sort"
"unsafe"
)
@@ -67,7 +68,9 @@ func (f *freelist) allocate(n int) pgid {
var initial, previd pgid
for i, id := range f.ids {
- _assert(id > 1, "invalid page allocation: %d", id)
+ if id <= 1 {
+ panic(fmt.Sprintf("invalid page allocation: %d", id))
+ }
// Reset initial page if this is not contiguous.
if previd == 0 || id-previd != 1 {
@@ -103,13 +106,17 @@ func (f *freelist) allocate(n int) pgid {
// free releases a page and its overflow for a given transaction id.
// If the page is already free then a panic will occur.
func (f *freelist) free(txid txid, p *page) {
- _assert(p.id > 1, "cannot free page 0 or 1: %d", p.id)
+ if p.id <= 1 {
+ panic(fmt.Sprintf("cannot free page 0 or 1: %d", p.id))
+ }
// Free page and all its overflow pages.
var ids = f.pending[txid]
for id := p.id; id <= p.id+pgid(p.overflow); id++ {
// Verify that page is not already free.
- _assert(!f.cache[id], "page %d already freed", id)
+ if f.cache[id] {
+ panic(fmt.Sprintf("page %d already freed", id))
+ }
// Add to the freelist and cache.
ids = append(ids, id)