Ejemplo n.º 1
0
Archivo: bt.go Proyecto: taysom/tau
func (branch *Branch) compact() {
	b := buf.Scratch(LenBuf)
	t := Branch{b, (*head)(unsafe.Pointer(&b.Data[0])), nil}
	t.head.kind = LEAF
	t.head.available = LenBuf - LenHead
	t.head.end = LenBuf
	t.head.block = branch.head.block
	t.head.overflow = branch.head.overflow
	for i := Len(0); i < branch.head.numrecs; i++ {
		t.storeRec(i, branch.getRec(i))
	}
	copy(branch.b.Data, t.b.Data)
}
Ejemplo n.º 2
0
Archivo: bt.go Proyecto: taysom/tau
func (leaf *Leaf) compact() {
	b := buf.Scratch(LenBuf)
	t := Leaf{b, (*head)(unsafe.Pointer(&b.Data[0])), nil}
	t.head.kind = LEAF
	t.head.available = LenBuf - LenHead
	t.head.end = LenBuf
	t.head.block = leaf.head.block
	t.head.overflow = leaf.head.overflow
	for i := Len(0); i < leaf.head.numrecs; i++ {
		t.storeRec(i, leaf.getRec(i))
	}
	copy(leaf.b.Data, t.b.Data)
}