diff options
Diffstat (limited to 'src/runtime/os_dragonfly.go')
| -rw-r--r-- | src/runtime/os_dragonfly.go | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/runtime/os_dragonfly.go b/src/runtime/os_dragonfly.go index e467578c32..fa480be029 100644 --- a/src/runtime/os_dragonfly.go +++ b/src/runtime/os_dragonfly.go @@ -296,8 +296,9 @@ func sysargs(argc int32, argv **byte) { // skip NULL separator n++ - auxv := (*[1 << 28]uintptr)(add(unsafe.Pointer(argv), uintptr(n)*goarch.PtrSize)) - sysauxv(auxv[:]) + auxvp := (*[1 << 28]uintptr)(add(unsafe.Pointer(argv), uintptr(n)*goarch.PtrSize)) + pairs := sysauxv(auxvp[:]) + auxv = auxvp[: pairs*2 : pairs*2] } const ( @@ -305,14 +306,16 @@ const ( _AT_PAGESZ = 6 ) -func sysauxv(auxv []uintptr) { - for i := 0; auxv[i] != _AT_NULL; i += 2 { +func sysauxv(auxv []uintptr) (pairs int) { + var i int + for i = 0; auxv[i] != _AT_NULL; i += 2 { tag, val := auxv[i], auxv[i+1] switch tag { case _AT_PAGESZ: physPageSize = val } } + return i / 2 } // raise sends a signal to the calling thread. |
