From 12b36fe70c3dee7f8ae9a1e2b68f76e1d9c4cd71 Mon Sep 17 00:00:00 2001 From: Ben Johnson Date: Mon, 19 May 2014 14:11:32 -0600 Subject: Fix freelist allocate(). --- freelist.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'freelist.go') diff --git a/freelist.go b/freelist.go index 0d79bb4..149e595 100644 --- a/freelist.go +++ b/freelist.go @@ -55,7 +55,7 @@ func (f *freelist) allocate(n int) pgid { if (i + 1) == n { f.ids = f.ids[i+1:] } else { - copy(f.ids[i-1:], f.ids[i+n-1:]) + copy(f.ids[i-n+1:], f.ids[i+1:]) f.ids = f.ids[:len(f.ids)-n] } return initial @@ -111,7 +111,7 @@ func (f *freelist) read(p *page) { ids := ((*[maxAllocSize]pgid)(unsafe.Pointer(&p.ptr)))[0:p.count] f.ids = make([]pgid, len(ids)) copy(f.ids, ids) - sort.Sort(pgids(ids)) + sort.Sort(pgids(f.ids)) } // write writes the page ids onto a freelist page. All free and pending ids are -- cgit v1.2.3