Merge pull request #144 from benbjohnson/copy-key

Copy key on Put() and CreateBucket().
pull/34/head
Ben Johnson 2014-04-29 09:34:38 -06:00
commit 0dfb71267c
1 changed files with 9 additions and 0 deletions

View File

@ -154,6 +154,7 @@ func (b *Bucket) CreateBucket(key []byte) (*Bucket, error) {
bucket.root = p.id
// Insert into node.
key = cloneBytes(key)
c.node().put(key, key, value, 0, bucketLeafFlag)
return b.Bucket(key), nil
@ -262,6 +263,7 @@ func (b *Bucket) Put(key []byte, value []byte) error {
}
// Insert into node.
key = cloneBytes(key)
c.node().put(key, key, value, 0, 0)
return nil
@ -533,3 +535,10 @@ type BucketStats struct {
LeafAlloc int // bytes allocated for physical leaf pages
LeafInuse int // bytes actually used for leaf data
}
// cloneBytes returns a copy of a given slice.
func cloneBytes(v []byte) []byte {
var clone = make([]byte, len(v))
copy(clone, v)
return clone
}