]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: simplify code using unsafe.{Slice,String}
authorcuiweixie <cuiweixie@gmail.com>
Sat, 3 Sep 2022 06:29:35 +0000 (14:29 +0800)
committerGopher Robot <gobot@golang.org>
Wed, 7 Sep 2022 01:48:30 +0000 (01:48 +0000)
Updates #54854

Change-Id: Ie18665e93e477b6f220acf4c6c070b2af4343064
Reviewed-on: https://go-review.googlesource.com/c/go/+/428157
Run-TryBot: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
Auto-Submit: Ian Lance Taylor <iant@google.com>

src/runtime/debuglog.go
src/runtime/memmove_linux_amd64_test.go
src/runtime/proc.go

index 028d77ad41da79ef3a0eb1ce789be0c17f4424f9..83d5a3e9e64f0317eced85b992b93c887958f890 100644 (file)
@@ -657,11 +657,7 @@ func (r *debugLogReader) printVal() bool {
        case debugLogConstString:
                len, ptr := int(r.uvarint()), uintptr(r.uvarint())
                ptr += firstmoduledata.etext
-               str := stringStruct{
-                       str: unsafe.Pointer(ptr),
-                       len: len,
-               }
-               s := *(*string)(unsafe.Pointer(&str))
+               s := unsafe.String((*byte)(unsafe.Pointer(ptr)), len)
                print(s)
 
        case debugLogStringOverflow:
index b3ccd907b9ba8b54ae7d15d49494f0db906f6c4f..5f900623bee83d12432fc995c9d0a3046f9c040c 100644 (file)
@@ -6,7 +6,6 @@ package runtime_test
 
 import (
        "os"
-       "reflect"
        "syscall"
        "testing"
        "unsafe"
@@ -45,11 +44,7 @@ func TestMemmoveOverflow(t *testing.T) {
                defer syscall.Syscall(syscall.SYS_MUNMAP, base+off, 65536, 0)
        }
 
-       var s []byte
-       sp := (*reflect.SliceHeader)(unsafe.Pointer(&s))
-       sp.Data = base
-       sp.Len, sp.Cap = 3<<30, 3<<30
-
+       s := unsafe.Slice((*byte)(unsafe.Pointer(base)), 3<<30)
        n := copy(s[1:], s)
        if n != 3<<30-1 {
                t.Fatalf("copied %d bytes, expected %d", n, 3<<30-1)
index 9ebb25bfd0caceb278b4cf91857833025f407080..1e4d4098b632866df1bcd3c1aa5190c9697a952e 100644 (file)
@@ -620,7 +620,7 @@ func cpuinit() {
 
                for i := int32(0); i < n; i++ {
                        p := argv_index(argv, argc+1+i)
-                       s := *(*string)(unsafe.Pointer(&stringStruct{unsafe.Pointer(p), findnull(p)}))
+                       s := unsafe.String(p, findnull(p))
 
                        if hasPrefix(s, prefix) {
                                env = gostring(p)[len(prefix):]