aboutsummaryrefslogtreecommitdiff
path: root/page.go
diff options
context:
space:
mode:
authorBen Johnson <benbjohnson@yahoo.com>2016-03-25 08:58:56 -0600
committerBen Johnson <benbjohnson@yahoo.com>2016-03-25 10:53:30 -0600
commit2b4a0e28943f2dc71b7697cb86764b05e9919637 (patch)
treeda55ceb25e0642f44187e1ce5350054b570431be /page.go
parentMerge pull request #542 from boltdb/remove-drone-badge (diff)
downloaddedo-2b4a0e28943f2dc71b7697cb86764b05e9919637.tar.gz
dedo-2b4a0e28943f2dc71b7697cb86764b05e9919637.tar.xz
set slice capacity
This commit sets the capacity on slices returned from `Bucket.Get()` to match the slice length. Previously the capacity would be the size of the mmap max size. This does not cause any backwards compatibility issues, however, it does allow users to `append()` to the returned slice since that will cause Go to realloc a new slice on the heap. Fixes #544
Diffstat (limited to 'page.go')
-rw-r--r--page.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/page.go b/page.go
index 818aa1b..4a55528 100644
--- a/page.go
+++ b/page.go
@@ -111,13 +111,13 @@ type leafPageElement struct {
// key returns a byte slice of the node key.
func (n *leafPageElement) key() []byte {
buf := (*[maxAllocSize]byte)(unsafe.Pointer(n))
- return (*[maxAllocSize]byte)(unsafe.Pointer(&buf[n.pos]))[:n.ksize]
+ return (*[maxAllocSize]byte)(unsafe.Pointer(&buf[n.pos]))[:n.ksize:n.ksize]
}
// value returns a byte slice of the node value.
func (n *leafPageElement) value() []byte {
buf := (*[maxAllocSize]byte)(unsafe.Pointer(n))
- return (*[maxAllocSize]byte)(unsafe.Pointer(&buf[n.pos+n.ksize]))[:n.vsize]
+ return (*[maxAllocSize]byte)(unsafe.Pointer(&buf[n.pos+n.ksize]))[:n.vsize:n.vsize]
}
// PageInfo represents human readable information about a page.