From b4d00c394a1feb8b2c6404e01be891e4a997ef35 Mon Sep 17 00:00:00 2001 From: Ben Johnson Date: Fri, 30 Jan 2015 14:15:49 -0500 Subject: Expand assertion statements. This commit expands calls to _assert() that use variadic arguments. These calls require conversion to interface{} so there was a large number of calls to Go's internal convT2E() function. In some profiling this was taking over 20% of total runtime. I don't remember seeing this before Go 1.4 so perhaps something has changed. --- cursor.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'cursor.go') diff --git a/cursor.go b/cursor.go index 3bfc2f1..0d8ed16 100644 --- a/cursor.go +++ b/cursor.go @@ -2,6 +2,7 @@ package bolt import ( "bytes" + "fmt" "sort" ) @@ -228,8 +229,8 @@ func (c *Cursor) next() (key []byte, value []byte, flags uint32) { // search recursively performs a binary search against a given page/node until it finds a given key. func (c *Cursor) search(key []byte, pgid pgid) { p, n := c.bucket.pageNode(pgid) - if p != nil { - _assert((p.flags&(branchPageFlag|leafPageFlag)) != 0, "invalid page type: %d: %x", p.id, p.flags) + if p != nil && (p.flags&(branchPageFlag|leafPageFlag)) == 0 { + panic(fmt.Sprintf("invalid page type: %d: %x", p.id, p.flags)) } e := elemRef{page: p, node: n} c.stack = append(c.stack, e) -- cgit v1.2.3