From 4fc84daf2ac803ea008df1c98b6dafdbce677243 Mon Sep 17 00:00:00 2001 From: Ben Johnson Date: Wed, 29 Jan 2014 22:35:58 -0500 Subject: Refactor meta.copy() and page.init(). --- page.go | 30 +++++++----------------------- 1 file changed, 7 insertions(+), 23 deletions(-) (limited to 'page.go') 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] +} -- cgit v1.2.3