detached 1d88bcc

all: apply (#439)

commit
1d88bcc161b34eee9199478fa4176b94662d1aab
author
Hajime Hoshi · · 2026-03-15 12:45 UTC
committer
GitHub · · 2026-03-15 12:45 UTC
parent
1a798da
signature
GPG UnverifiedB5690EEEBB952194 The key is unknown
refs
tag: v0.11.0-alpha.1
3 files · +20 -18
M func.go +4 -4
@@ -159,7 +159,7 @@ func RegisterFunc(fptr any, cfn uintptr) {
159159 }
160160 }
161161 case reflect.String, reflect.Uintptr, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,
162- reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Ptr, reflect.UnsafePointer,
162+ reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Pointer, reflect.UnsafePointer,
163163 reflect.Slice, reflect.Bool:
164164 if ints < numOfIntegerRegisters() {
165165 ints++
@@ -343,7 +343,7 @@ func RegisterFunc(fptr any, cfn uintptr) {
343343 case reflect.UnsafePointer:
344344 // We take the address and then dereference it to trick go vet from creating a possible miss-use of unsafe.Pointer
345345 v.SetPointer(*(*unsafe.Pointer)(unsafe.Pointer(&syscall.a1)))
346- case reflect.Ptr:
346+ case reflect.Pointer:
347347 v = reflect.NewAt(outType, unsafe.Pointer(&syscall.a1)).Elem()
348348 case reflect.Func:
349349 // wrap this C function in a nicely typed Go function
@@ -403,7 +403,7 @@ func addValue(v reflect.Value, keepAlive []any, addInt func(x uintptr), addFloat
403403 addInt(uintptr(v.Uint()))
404404 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
405405 addInt(uintptr(v.Int()))
406- case reflect.Ptr, reflect.UnsafePointer, reflect.Slice:
406+ case reflect.Pointer, reflect.UnsafePointer, reflect.Slice:
407407 // There is no need to keepAlive this pointer separately because it is kept alive in the args variable
408408 addInt(v.Pointer())
409409 case reflect.Func:
@@ -482,7 +482,7 @@ func checkStructFieldsSupported(ty reflect.Type) {
482482 switch f.Kind() {
483483 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,
484484 reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,
485- reflect.Uintptr, reflect.Ptr, reflect.UnsafePointer, reflect.Float64, reflect.Float32,
485+ reflect.Uintptr, reflect.Pointer, reflect.UnsafePointer, reflect.Float64, reflect.Float32,
486486 reflect.Bool:
487487 default:
488488 panic(fmt.Sprintf("purego: struct field type %s is not supported", f))
@@ -159,7 +159,7 @@ func RegisterFunc(fptr any, cfn uintptr) {
159 }159 }
160 }160 }
161 case reflect.String, reflect.Uintptr, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,161 case reflect.String, reflect.Uintptr, reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,
162- reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Ptr, reflect.UnsafePointer,162+ reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, reflect.Pointer, reflect.UnsafePointer,
163 reflect.Slice, reflect.Bool:163 reflect.Slice, reflect.Bool:
164 if ints < numOfIntegerRegisters() {164 if ints < numOfIntegerRegisters() {
165 ints++165 ints++
@@ -343,7 +343,7 @@ func RegisterFunc(fptr any, cfn uintptr) {
343 case reflect.UnsafePointer:343 case reflect.UnsafePointer:
344 // We take the address and then dereference it to trick go vet from creating a possible miss-use of unsafe.Pointer344 // We take the address and then dereference it to trick go vet from creating a possible miss-use of unsafe.Pointer
345 v.SetPointer(*(*unsafe.Pointer)(unsafe.Pointer(&syscall.a1)))345 v.SetPointer(*(*unsafe.Pointer)(unsafe.Pointer(&syscall.a1)))
346- case reflect.Ptr:346+ case reflect.Pointer:
347 v = reflect.NewAt(outType, unsafe.Pointer(&syscall.a1)).Elem()347 v = reflect.NewAt(outType, unsafe.Pointer(&syscall.a1)).Elem()
348 case reflect.Func:348 case reflect.Func:
349 // wrap this C function in a nicely typed Go function349 // wrap this C function in a nicely typed Go function
@@ -403,7 +403,7 @@ func addValue(v reflect.Value, keepAlive []any, addInt func(x uintptr), addFloat
403 addInt(uintptr(v.Uint()))403 addInt(uintptr(v.Uint()))
404 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:404 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
405 addInt(uintptr(v.Int()))405 addInt(uintptr(v.Int()))
406- case reflect.Ptr, reflect.UnsafePointer, reflect.Slice:406+ case reflect.Pointer, reflect.UnsafePointer, reflect.Slice:
407 // There is no need to keepAlive this pointer separately because it is kept alive in the args variable407 // There is no need to keepAlive this pointer separately because it is kept alive in the args variable
408 addInt(v.Pointer())408 addInt(v.Pointer())
409 case reflect.Func:409 case reflect.Func:
@@ -482,7 +482,7 @@ func checkStructFieldsSupported(ty reflect.Type) {
482 switch f.Kind() {482 switch f.Kind() {
483 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,483 case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64,
484 reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,484 reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64,
485- reflect.Uintptr, reflect.Ptr, reflect.UnsafePointer, reflect.Float64, reflect.Float32,485+ reflect.Uintptr, reflect.Pointer, reflect.UnsafePointer, reflect.Float64, reflect.Float32,
486 reflect.Bool:486 reflect.Bool:
487 default:487 default:
488 panic(fmt.Sprintf("purego: struct field type %s is not supported", f))488 panic(fmt.Sprintf("purego: struct field type %s is not supported", f))
M objc/objc_runtime_darwin.go +15 -13
@@ -12,6 +12,7 @@ import (
1212 "reflect"
1313 "regexp"
1414 "runtime"
15+ stdstrings "strings"
1516 "unicode"
1617 "unsafe"
1718
@@ -456,26 +457,27 @@ func encodeType(typ reflect.Type, insidePtr bool) (string, error) {
456457 return encFloat, nil
457458 case reflect.Float64:
458459 return encDouble, nil
459- case reflect.Ptr:
460+ case reflect.Pointer:
460461 enc, err := encodeType(typ.Elem(), true)
461462 return encPtr + enc, err
462463 case reflect.Struct:
463464 if insidePtr {
464465 return encStructBegin + typ.Name() + encStructEnd, nil
465466 }
466- encoding := encStructBegin
467- encoding += typ.Name()
468- encoding += "="
467+ var encoding stdstrings.Builder
468+ encoding.WriteString(encStructBegin)
469+ encoding.WriteString(typ.Name())
470+ encoding.WriteString("=")
469471 for i := 0; i < typ.NumField(); i++ {
470472 f := typ.Field(i)
471473 tmp, err := encodeType(f.Type, false)
472474 if err != nil {
473475 return "", err
474476 }
475- encoding += tmp
477+ encoding.WriteString(tmp)
476478 }
477- encoding += encStructEnd
478- return encoding, nil
479+ encoding.WriteString(encStructEnd)
480+ return encoding.String(), nil
479481 case reflect.UnsafePointer:
480482 return encUnsafePtr, nil
481483 case reflect.String:
@@ -492,16 +494,16 @@ func encodeFunc(fn any) (string, error) {
492494 return "", errors.New("not a func")
493495 }
494496
495- encoding := ""
497+ var encoding stdstrings.Builder
496498 switch typ.NumOut() {
497499 case 0:
498- encoding += encVoid
500+ encoding.WriteString(encVoid)
499501 case 1:
500502 tmp, err := encodeType(typ.Out(0), false)
501503 if err != nil {
502504 return "", err
503505 }
504- encoding += tmp
506+ encoding.WriteString(tmp)
505507 default:
506508 return "", errors.New("too many output parameters")
507509 }
@@ -510,16 +512,16 @@ func encodeFunc(fn any) (string, error) {
510512 return "", errors.New("func doesn't take ID and SEL as its first two parameters")
511513 }
512514
513- encoding += encId
515+ encoding.WriteString(encId)
514516
515517 for i := 1; i < typ.NumIn(); i++ {
516518 tmp, err := encodeType(typ.In(i), false)
517519 if err != nil {
518520 return "", err
519521 }
520- encoding += tmp
522+ encoding.WriteString(tmp)
521523 }
522- return encoding, nil
524+ return encoding.String(), nil
523525 }
524526
525527 // SuperClass returns the superclass of a class.
@@ -12,6 +12,7 @@ import (
12 "reflect"12 "reflect"
13 "regexp"13 "regexp"
14 "runtime"14 "runtime"
15+ stdstrings "strings"
15 "unicode"16 "unicode"
16 "unsafe"17 "unsafe"
17 18
@@ -456,26 +457,27 @@ func encodeType(typ reflect.Type, insidePtr bool) (string, error) {
456 return encFloat, nil457 return encFloat, nil
457 case reflect.Float64:458 case reflect.Float64:
458 return encDouble, nil459 return encDouble, nil
459- case reflect.Ptr:460+ case reflect.Pointer:
460 enc, err := encodeType(typ.Elem(), true)461 enc, err := encodeType(typ.Elem(), true)
461 return encPtr + enc, err462 return encPtr + enc, err
462 case reflect.Struct:463 case reflect.Struct:
463 if insidePtr {464 if insidePtr {
464 return encStructBegin + typ.Name() + encStructEnd, nil465 return encStructBegin + typ.Name() + encStructEnd, nil
465 }466 }
466- encoding := encStructBegin467+ var encoding stdstrings.Builder
467- encoding += typ.Name()468+ encoding.WriteString(encStructBegin)
468- encoding += "="469+ encoding.WriteString(typ.Name())
470+ encoding.WriteString("=")
469 for i := 0; i < typ.NumField(); i++ {471 for i := 0; i < typ.NumField(); i++ {
470 f := typ.Field(i)472 f := typ.Field(i)
471 tmp, err := encodeType(f.Type, false)473 tmp, err := encodeType(f.Type, false)
472 if err != nil {474 if err != nil {
473 return "", err475 return "", err
474 }476 }
475- encoding += tmp477+ encoding.WriteString(tmp)
476 }478 }
477- encoding += encStructEnd479+ encoding.WriteString(encStructEnd)
478- return encoding, nil480+ return encoding.String(), nil
479 case reflect.UnsafePointer:481 case reflect.UnsafePointer:
480 return encUnsafePtr, nil482 return encUnsafePtr, nil
481 case reflect.String:483 case reflect.String:
@@ -492,16 +494,16 @@ func encodeFunc(fn any) (string, error) {
492 return "", errors.New("not a func")494 return "", errors.New("not a func")
493 }495 }
494 496
495- encoding := ""497+ var encoding stdstrings.Builder
496 switch typ.NumOut() {498 switch typ.NumOut() {
497 case 0:499 case 0:
498- encoding += encVoid500+ encoding.WriteString(encVoid)
499 case 1:501 case 1:
500 tmp, err := encodeType(typ.Out(0), false)502 tmp, err := encodeType(typ.Out(0), false)
501 if err != nil {503 if err != nil {
502 return "", err504 return "", err
503 }505 }
504- encoding += tmp506+ encoding.WriteString(tmp)
505 default:507 default:
506 return "", errors.New("too many output parameters")508 return "", errors.New("too many output parameters")
507 }509 }
@@ -510,16 +512,16 @@ func encodeFunc(fn any) (string, error) {
510 return "", errors.New("func doesn't take ID and SEL as its first two parameters")512 return "", errors.New("func doesn't take ID and SEL as its first two parameters")
511 }513 }
512 514
513- encoding += encId515+ encoding.WriteString(encId)
514 516
515 for i := 1; i < typ.NumIn(); i++ {517 for i := 1; i < typ.NumIn(); i++ {
516 tmp, err := encodeType(typ.In(i), false)518 tmp, err := encodeType(typ.In(i), false)
517 if err != nil {519 if err != nil {
518 return "", err520 return "", err
519 }521 }
520- encoding += tmp522+ encoding.WriteString(tmp)
521 }523 }
522- return encoding, nil524+ return encoding.String(), nil
523 }525 }
524 526
525 // SuperClass returns the superclass of a class.527 // SuperClass returns the superclass of a class.
M struct_arm64.go +1 -1
@@ -190,7 +190,7 @@ func placeRegistersArm64(v reflect.Value, addFloat func(uintptr), addInt func(ui
190190 shift = 0
191191 flushed = true
192192 class = _NO_CLASS
193- case reflect.Ptr, reflect.UnsafePointer:
193+ case reflect.Pointer, reflect.UnsafePointer:
194194 addInt(f.Pointer())
195195 shift = 0
196196 flushed = true
@@ -190,7 +190,7 @@ func placeRegistersArm64(v reflect.Value, addFloat func(uintptr), addInt func(ui
190 shift = 0190 shift = 0
191 flushed = true191 flushed = true
192 class = _NO_CLASS192 class = _NO_CLASS
193- case reflect.Ptr, reflect.UnsafePointer:193+ case reflect.Pointer, reflect.UnsafePointer:
194 addInt(f.Pointer())194 addInt(f.Pointer())
195 shift = 0195 shift = 0
196 flushed = true196 flushed = true

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 102

↑↓ moveenter openesc close