Skip to content

Commit

Permalink
fix: add reflect.mapiterinit link for go1.18
Browse files Browse the repository at this point in the history
resolve #6
  • Loading branch information
wI2L committed Mar 18, 2022
1 parent b174f9b commit 44bcb2d
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 15 deletions.
15 changes: 0 additions & 15 deletions map.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,21 +54,6 @@ type hiter struct {

var zeroHiter = &hiter{}

func newHiter(t, m unsafe.Pointer) *hiter {
v := hiterPool.Get()
if v == nil {
return newmapiter(t, m)
}
it := v.(*hiter)
*it = *zeroHiter
mapiterinit(t, m, unsafe.Pointer(it))
return it
}

//go:noescape
//go:linkname newmapiter reflect.mapiterinit
func newmapiter(unsafe.Pointer, unsafe.Pointer) *hiter

//go:noescape
//go:linkname mapiterinit runtime.mapiterinit
func mapiterinit(unsafe.Pointer, unsafe.Pointer, unsafe.Pointer)
Expand Down
20 changes: 20 additions & 0 deletions map_1.17.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
// +build !go1.18

package jettison

import "unsafe"

func newHiter(t, m unsafe.Pointer) *hiter {
v := hiterPool.Get()
if v == nil {
return newmapiter(t, m)
}
it := v.(*hiter)
*it = *zeroHiter
mapiterinit(t, m, unsafe.Pointer(it))
return it
}

//go:noescape
//go:linkname newmapiter reflect.mapiterinit
func newmapiter(unsafe.Pointer, unsafe.Pointer) *hiter
22 changes: 22 additions & 0 deletions map_1.18.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// +build go1.18

package jettison

import "unsafe"

func newHiter(t, m unsafe.Pointer) *hiter {
v := hiterPool.Get()
if v == nil {
var it hiter
newmapiter(t, m, &it)
return &it
}
it := v.(*hiter)
*it = *zeroHiter
mapiterinit(t, m, unsafe.Pointer(it))
return it
}

//go:noescape
//go:linkname newmapiter reflect.mapiterinit
func newmapiter(unsafe.Pointer, unsafe.Pointer, *hiter)

0 comments on commit 44bcb2d

Please sign in to comment.