diff options
Diffstat (limited to 'src/strings/strings.go')
| -rw-r--r-- | src/strings/strings.go | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/strings/strings.go b/src/strings/strings.go index c66c248c02..02c032046b 100644 --- a/src/strings/strings.go +++ b/src/strings/strings.go @@ -166,6 +166,10 @@ func IndexRune(s string, r rune) int { // IndexAny returns the index of the first instance of any Unicode code point // from chars in s, or -1 if no Unicode code point from chars is present in s. func IndexAny(s, chars string) int { + if chars == "" { + // Avoid scanning all of s. + return -1 + } if len(s) > 8 { if as, isASCII := makeASCIISet(chars); isASCII { for i := 0; i < len(s); i++ { @@ -190,6 +194,10 @@ func IndexAny(s, chars string) int { // point from chars in s, or -1 if no Unicode code point from chars is // present in s. func LastIndexAny(s, chars string) int { + if chars == "" { + // Avoid scanning all of s. + return -1 + } if len(s) > 8 { if as, isASCII := makeASCIISet(chars); isASCII { for i := len(s) - 1; i >= 0; i-- { |
