aboutsummaryrefslogtreecommitdiff
path: root/freelist.go
diff options
context:
space:
mode:
authorBen Johnson <benbjohnson@yahoo.com>2014-03-31 11:08:27 -0600
committerBen Johnson <benbjohnson@yahoo.com>2014-03-31 11:08:27 -0600
commitb5c1715a36de567a5950a911a9ef2a90876610db (patch)
tree6b0b06f7fc1ca4c4799ebb480961ed297bf9667b /freelist.go
parentMerge pull request #98 from benbjohnson/fsck (diff)
parentWrite freelist after each commit. (diff)
downloaddedo-b5c1715a36de567a5950a911a9ef2a90876610db.tar.gz
dedo-b5c1715a36de567a5950a911a9ef2a90876610db.tar.xz
Merge pull request #102 from benbjohnson/fix-freelist
Write freelist after each commit.
Diffstat (limited to 'freelist.go')
-rw-r--r--freelist.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/freelist.go b/freelist.go
index d0b1492..cb58a54 100644
--- a/freelist.go
+++ b/freelist.go
@@ -12,6 +12,11 @@ type freelist struct {
pending map[txid][]pgid
}
+// size returns the size of the page after serialization.
+func (f *freelist) size() int {
+ return pageHeaderSize + (int(unsafe.Sizeof(pgid(0))) * len(f.all()))
+}
+
// all returns a list of all free ids and all pending ids in one sorted list.
func (f *freelist) all() []pgid {
ids := make([]pgid, len(f.ids))