Commit 4731c382 authored by Brad Fitzpatrick's avatar Brad Fitzpatrick

strings: use fast path for IndexRune

Noticed while reviewing https://golang.org/cl/147690043/

I'd never seen anybody use IndexRune before, and
unsurprisingly it doesn't use the other fast paths in the
strings/bytes packages. IndexByte uses assembly.

Also, less code this way.

LGTM=r
R=r
CC=golang-codereviews
https://golang.org/cl/147700043
parent f8f95590
......@@ -225,13 +225,8 @@ func LastIndex(s, sep string) int {
// r, or -1 if rune is not present in s.
func IndexRune(s string, r rune) int {
switch {
case r < 0x80:
b := byte(r)
for i := 0; i < len(s); i++ {
if s[i] == b {
return i
}
}
case r < utf8.RuneSelf:
return IndexByte(s, byte(r))
default:
for i, c := range s {
if c == r {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment