internal/unsafe: get rid of GoString

The only users were GOOS=windows code, which can use
golang.org/x/sys/windows.BytePtrToString instead.

Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit is contained in:
Elias Naur
2021-03-11 11:13:49 +01:00
parent 884e7d27e2
commit 5894127204
4 changed files with 2 additions and 36 deletions
+1 -2
View File
@@ -11,7 +11,6 @@ import (
syscall "golang.org/x/sys/windows"
"gioui.org/internal/gl"
gunsafe "gioui.org/internal/unsafe"
)
type (
@@ -154,7 +153,7 @@ func eglTerminate(disp _EGLDisplay) bool {
func eglQueryString(disp _EGLDisplay, name _EGLint) string {
r, _, _ := _eglQueryString.Call(uintptr(disp), uintptr(name))
return gunsafe.GoString(gunsafe.SliceOf(r))
return syscall.BytePtrToString((*byte)(unsafe.Pointer(r)))
}
// issue34474KeepAlive calls runtime.KeepAlive as a
+1 -3
View File
@@ -9,8 +9,6 @@ import (
"unsafe"
"golang.org/x/sys/windows"
gunsafe "gioui.org/internal/unsafe"
)
var (
@@ -324,7 +322,7 @@ func (c *Functions) GetShaderInfoLog(s Shader) string {
}
func (c *Functions) GetString(pname Enum) string {
s, _, _ := syscall.Syscall(_glGetString.Addr(), 1, uintptr(pname), 0, 0)
return gunsafe.GoString(gunsafe.SliceOf(s))
return windows.BytePtrToString((*byte)(unsafe.Pointer(s)))
}
func (c *Functions) GetUniformLocation(p Program, name string) Uniform {
cname := cString(name)
-11
View File
@@ -44,14 +44,3 @@ func SliceOf(s uintptr) []byte {
h.Len = 1 << 30
return res
}
// GoString convert a NUL-terminated C string
// to a Go string.
func GoString(s []byte) string {
for i, v := range s {
if v == 0 {
return string(s[:i])
}
}
return string(s)
}
-20
View File
@@ -1,20 +0,0 @@
// SPDX-License-Identifier: Unlicense OR MIT
package unsafe
import (
"testing"
)
func TestGoString(t *testing.T) {
tests := [][2]string{
{"Hello\x00", "Hello"},
{"\x00", ""},
}
for _, test := range tests {
got := GoString([]byte(test[0]))
if exp := test[1]; exp != got {
t.Errorf("expected %q got %q", exp, got)
}
}
}