aboutsummaryrefslogtreecommitdiff
path: root/page.go
diff options
context:
space:
mode:
authorBen Johnson <benbjohnson@yahoo.com>2014-01-30 00:11:46 -0500
committerBen Johnson <benbjohnson@yahoo.com>2014-01-30 00:11:46 -0500
commit149d48fb9e3e8147cf0bce84a4e11164ac9cdbf3 (patch)
tree2616c762651a8e516e348c3741d502a1f68ffd16 /page.go
parentAdd freelist page type. (diff)
downloaddedo-149d48fb9e3e8147cf0bce84a4e11164ac9cdbf3.tar.gz
dedo-149d48fb9e3e8147cf0bce84a4e11164ac9cdbf3.tar.xz
Fix leaf/branch deserialization.
Diffstat (limited to 'page.go')
-rw-r--r--page.go10
1 files changed, 10 insertions, 0 deletions
diff --git a/page.go b/page.go
index 12d1cee..7129208 100644
--- a/page.go
+++ b/page.go
@@ -37,11 +37,21 @@ func (p *page) lnode(index int) *lnode {
return &((*[maxNodesPerPage]lnode)(unsafe.Pointer(&p.ptr)))[index]
}
+// lnodes retrieves a list of leaf nodes.
+func (p *page) lnodes() []lnode {
+ return ((*[maxNodesPerPage]lnode)(unsafe.Pointer(&p.ptr)))[:]
+}
+
// bnode retrieves the branch node by index
func (p *page) bnode(index int) *bnode {
return &((*[maxNodesPerPage]bnode)(unsafe.Pointer(&p.ptr)))[index]
}
+// bnodes retrieves a list of branch nodes.
+func (p *page) bnodes() []bnode {
+ return ((*[maxNodesPerPage]bnode)(unsafe.Pointer(&p.ptr)))[:]
+}
+
// freelist retrieves a list of page ids from a freelist page.
func (p *page) freelist() []pgid {
return ((*[maxNodesPerPage]pgid)(unsafe.Pointer(&p.ptr)))[0:p.count]