aboutsummaryrefslogtreecommitdiff
path: root/page.go
diff options
context:
space:
mode:
authorBen Johnson <benbjohnson@yahoo.com>2014-01-29 22:35:58 -0500
committerBen Johnson <benbjohnson@yahoo.com>2014-01-29 22:35:58 -0500
commit4fc84daf2ac803ea008df1c98b6dafdbce677243 (patch)
treecfa9500a464d073fcb554607c3fb763ceaedf5b4 /page.go
parentAdd branch.split() (diff)
downloaddedo-4fc84daf2ac803ea008df1c98b6dafdbce677243.tar.gz
dedo-4fc84daf2ac803ea008df1c98b6dafdbce677243.tar.xz
Refactor meta.copy() and page.init().
Diffstat (limited to 'page.go')
-rw-r--r--page.go30
1 files changed, 7 insertions, 23 deletions
diff --git a/page.go b/page.go
index dbfff64..d45d336 100644
--- a/page.go
+++ b/page.go
@@ -27,32 +27,16 @@ type page struct {
}
// meta returns a pointer to the metadata section of the page.
-func (p *page) meta() (*meta, error) {
- // Exit if page is not a meta page.
- if (p.flags & p_meta) == 0 {
- return nil, InvalidMetaPageError
- }
-
- // Cast the meta section and validate before returning.
- m := (*meta)(unsafe.Pointer(&p.ptr))
- if err := m.validate(); err != nil {
- return nil, err
- }
- return m, nil
-}
-
-// init initializes a page as a new meta page.
-func (p *page) init(pageSize int) {
- p.flags = p_meta
- m := (*meta)(unsafe.Pointer(&p.ptr))
- m.magic = magic
- m.version = version
- m.pageSize = uint32(pageSize)
- m.pgid = 1
- m.sys.root = 0
+func (p *page) meta() *meta {
+ return (*meta)(unsafe.Pointer(&p.ptr))
}
// lnode retrieves the leaf node by index
func (p *page) lnode(index int) *lnode {
return &((*[maxNodesPerPage]lnode)(unsafe.Pointer(&p.ptr)))[index]
}
+
+// bnode retrieves the branch node by index
+func (p *page) bnode(index int) *bnode {
+ return &((*[maxNodesPerPage]bnode)(unsafe.Pointer(&p.ptr)))[index]
+}