Skip to content

Commit 792db50

Browse files
committed
3rdparty/purego: 修复在 Go1.17 环境下的构建错误
1 parent f2e969b commit 792db50

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

internal/3rdparty/purego/struct_amd64.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ func tryPlaceRegister(v reflect.Value, addFloat func(uintptr), addInt func(uintp
169169
}
170170
shift += 8
171171
class |= _INTEGER
172-
case reflect.Pointer:
172+
case reflect.Ptr:
173173
ok = false
174174
return
175175
case reflect.Int8:
@@ -241,7 +241,7 @@ func placeStack(v reflect.Value, addStack func(uintptr)) {
241241
for i := 0; i < v.Type().NumField(); i++ {
242242
f := v.Field(i)
243243
switch f.Kind() {
244-
case reflect.Pointer:
244+
case reflect.Ptr:
245245
addStack(f.Pointer())
246246
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
247247
addStack(uintptr(f.Int()))

internal/3rdparty/purego/struct_arm64.go

+3-3
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ const (
6565
_INT = 0b11
6666
)
6767

68-
func addStruct(v reflect.Value, numInts, numFloats, numStack *int, addInt, addFloat, addStack func(uintptr), keepAlive []any) []any {
68+
func addStruct(v reflect.Value, numInts, numFloats, numStack *int, addInt, addFloat, addStack func(uintptr), keepAlive []interface{}) []interface{} {
6969
if v.Type().Size() == 0 {
7070
return keepAlive
7171
}
@@ -187,12 +187,12 @@ func placeRegisters(v reflect.Value, addFloat func(uintptr), addInt func(uintptr
187187
}
188188
}
189189

190-
func placeStack(v reflect.Value, keepAlive []any, addInt func(uintptr)) []any {
190+
func placeStack(v reflect.Value, keepAlive []interface{}, addInt func(uintptr)) []interface{} {
191191
// Struct is too big to be placed in registers.
192192
// Copy to heap and place the pointer in register
193193
ptrStruct := reflect.New(v.Type())
194194
ptrStruct.Elem().Set(v)
195-
ptr := ptrStruct.Elem().Addr().UnsafePointer()
195+
ptr := unsafe.Pointer(ptrStruct.Elem().Addr().Pointer())
196196
keepAlive = append(keepAlive, ptr)
197197
addInt(uintptr(ptr))
198198
return keepAlive

internal/3rdparty/purego/syscall_sysv.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ output:
9898
switch {
9999
case ty.NumOut() == 1:
100100
switch ty.Out(0).Kind() {
101-
case reflect.Pointer, reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,
101+
case reflect.Ptr, reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,
102102
reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr,
103103
reflect.Bool, reflect.UnsafePointer:
104104
break output
@@ -188,7 +188,7 @@ func callbackWrap(a *callbackArgs) {
188188
} else {
189189
a.result = 0
190190
}
191-
case reflect.Pointer:
191+
case reflect.Ptr:
192192
a.result = ret[0].Pointer()
193193
case reflect.UnsafePointer:
194194
a.result = ret[0].Pointer()

internal/3rdparty/purego/syscall_windows.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ func syscall_syscall15X(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a
2222
// allocated for these callbacks is never released. Between NewCallback and NewCallbackCDecl, at least 1024
2323
// callbacks can always be created. Although this function is similiar to the darwin version it may act
2424
// differently.
25-
func NewCallback(fn any) uintptr {
25+
func NewCallback(fn interface{}) uintptr {
2626
isCDecl := false
2727
ty := reflect.TypeOf(fn)
2828
for i := 0; i < ty.NumIn(); i++ {

0 commit comments

Comments
 (0)