@@ -13,6 +13,7 @@ const MinKeysPerPage = 2
13
13
14
14
const BranchPageElementSize = unsafe .Sizeof (branchPageElement {})
15
15
const LeafPageElementSize = unsafe .Sizeof (leafPageElement {})
16
+ const pgidSize = unsafe .Sizeof (Pgid (0 ))
16
17
17
18
const (
18
19
BranchPageFlag = 0x01
@@ -99,9 +100,8 @@ func (p *Page) LeafPageElements() []leafPageElement {
99
100
if p .count == 0 {
100
101
return nil
101
102
}
102
- var elems []leafPageElement
103
103
data := UnsafeAdd (unsafe .Pointer (p ), unsafe .Sizeof (* p ))
104
- UnsafeSlice ( unsafe .Pointer ( & elems ), data , int (p .count ))
104
+ elems := unsafe .Slice (( * leafPageElement )( data ) , int (p .count ))
105
105
return elems
106
106
}
107
107
@@ -116,9 +116,8 @@ func (p *Page) BranchPageElements() []branchPageElement {
116
116
if p .count == 0 {
117
117
return nil
118
118
}
119
- var elems []branchPageElement
120
119
data := UnsafeAdd (unsafe .Pointer (p ), unsafe .Sizeof (* p ))
121
- UnsafeSlice ( unsafe .Pointer ( & elems ), data , int (p .count ))
120
+ elems := unsafe .Slice (( * branchPageElement )( data ) , int (p .count ))
122
121
return elems
123
122
}
124
123
@@ -149,9 +148,8 @@ func (p *Page) FreelistPageIds() []Pgid {
149
148
return nil
150
149
}
151
150
152
- var ids []Pgid
153
- data := UnsafeIndex (unsafe .Pointer (p ), unsafe .Sizeof (* p ), unsafe .Sizeof (ids [0 ]), idx )
154
- UnsafeSlice (unsafe .Pointer (& ids ), data , count )
151
+ data := UnsafeIndex (unsafe .Pointer (p ), unsafe .Sizeof (* p ), pgidSize , idx )
152
+ ids := unsafe .Slice ((* Pgid )(data ), count )
155
153
156
154
return ids
157
155
}
0 commit comments