]> Cypherpunks repositories - gostls13.git/commitdiff
syscall: optimize UTF16{,Ptr}FromString
authorTobias Klauser <tklauser@distanz.ch>
Thu, 17 Mar 2022 10:41:24 +0000 (11:41 +0100)
committerTobias Klauser <tobias.klauser@gmail.com>
Fri, 18 Mar 2022 05:55:52 +0000 (05:55 +0000)
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>
src/syscall/syscall_windows.go

index aba6c3f5fb8b8af1a8de8829d128a7c36bc68818..adc865fd5ffbee6b538bab07ff59d33a409892d7 100644 (file)
@@ -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
 }