From 2edf467146b5fc89e484991587e3032c8421ae8c Mon Sep 17 00:00:00 2001 From: Tobias Klauser Date: Thu, 17 Mar 2022 10:38:59 +0100 Subject: [PATCH] windows: optimize UTF16{,Ptr}FromString Use strings.IndexByte in UTF16FromString instead of an open-coded loop. Change-Id: Iac4374d9a58e40659147d35c9ab21bb89f5da629 Reviewed-on: https://go-review.googlesource.com/c/sys/+/393594 Trust: Tobias Klauser Run-TryBot: Tobias Klauser TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor --- windows/syscall_windows.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/windows/syscall_windows.go b/windows/syscall_windows.go index 98b7e4b4..ce3075c4 100644 --- a/windows/syscall_windows.go +++ b/windows/syscall_windows.go @@ -10,6 +10,7 @@ import ( errorspkg "errors" "fmt" "runtime" + "strings" "sync" "syscall" "time" @@ -86,10 +87,8 @@ func StringToUTF16(s string) []uint16 { // s, with a terminating NUL added. If s contains a NUL byte at any // location, it returns (nil, syscall.EINVAL). func UTF16FromString(s string) ([]uint16, error) { - for i := 0; i < len(s); i++ { - if s[i] == 0 { - return nil, syscall.EINVAL - } + if strings.IndexByte(s, 0) != -1 { + return nil, syscall.EINVAL } return utf16.Encode([]rune(s + "\x00")), nil }