aboutsummaryrefslogtreecommitdiff
path: root/src/syscall
diff options
context:
space:
mode:
authorTobias Klauser <tklauser@distanz.ch>2022-03-17 11:41:24 +0100
committerTobias Klauser <tobias.klauser@gmail.com>2022-03-18 05:55:52 +0000
commit489102de18cff38d1b12d09eeb7e60af42492d63 (patch)
tree2710a8bbe35de599e1ba9510ee29a646fe474ace /src/syscall
parent3ea22cf3c4b32e6473ad1358a3cbfccc11abc5be (diff)
downloadgo-489102de18cff38d1b12d09eeb7e60af42492d63.tar.xz
syscall: optimize UTF16{,Ptr}FromString
Use bytealg.IndexByteString in UTF16FromString instead of an open-coded loop. Change-Id: I366448382f2d0adeca6b254131e0087a1f489258 Reviewed-on: https://go-review.googlesource.com/c/go/+/393614 Trust: Tobias Klauser <tobias.klauser@gmail.com> Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com> TryBot-Result: Gopher Robot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/syscall')
-rw-r--r--src/syscall/syscall_windows.go7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/syscall/syscall_windows.go b/src/syscall/syscall_windows.go
index aba6c3f5fb..adc865fd5f 100644
--- a/src/syscall/syscall_windows.go
+++ b/src/syscall/syscall_windows.go
@@ -8,6 +8,7 @@ package syscall
import (
errorspkg "errors"
+ "internal/bytealg"
"internal/itoa"
"internal/oserror"
"internal/race"
@@ -39,10 +40,8 @@ func StringToUTF16(s string) []uint16 {
// s, with a terminating NUL added. If s contains a NUL byte at any
// location, it returns (nil, EINVAL).
func UTF16FromString(s string) ([]uint16, error) {
- for i := 0; i < len(s); i++ {
- if s[i] == 0 {
- return nil, EINVAL
- }
+ if bytealg.IndexByteString(s, 0) != -1 {
+ return nil, EINVAL
}
return utf16.Encode([]rune(s + "\x00")), nil
}