diff options
| author | Tobias Klauser <tklauser@distanz.ch> | 2022-03-17 11:41:24 +0100 |
|---|---|---|
| committer | Tobias Klauser <tobias.klauser@gmail.com> | 2022-03-18 05:55:52 +0000 |
| commit | 489102de18cff38d1b12d09eeb7e60af42492d63 (patch) | |
| tree | 2710a8bbe35de599e1ba9510ee29a646fe474ace /src/syscall | |
| parent | 3ea22cf3c4b32e6473ad1358a3cbfccc11abc5be (diff) | |
| download | go-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.go | 7 |
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 } |
