]> Cypherpunks repositories - gostls13.git/commit
bytes, strings: restore O(1) behavior of IndexAny(s, "") and LastIndexAny(s, "")
authorRuss Cox <rsc@golang.org>
Tue, 14 Nov 2017 02:30:22 +0000 (21:30 -0500)
committerRuss Cox <rsc@golang.org>
Wed, 15 Nov 2017 21:26:05 +0000 (21:26 +0000)
commit2a166c93a3d2a7ba73e129649b7b41b6c696e74a
treea2c7abc248f36af6c1376ecff37e790e90253cf4
parente7628bee6e8ddac41b213d9ed0b2d6e4051674e4
bytes, strings: restore O(1) behavior of IndexAny(s, "") and LastIndexAny(s, "")

CL 65851 (bytes) and CL 65910 (strings) “improve[d] readability”
by removing the special case that bypassed the whole function body
when chars == "". In doing so, yes, the function was unindented a
level, which is nice, but the runtime of that case went from O(1) to O(n)
where n = len(s).

I don't know if anyone's code depends on the O(1) behavior in this case,
but quite possibly someone's does.

This CL adds the special case back, with a comment to prevent future
deletions, and without reindenting each function body in full.

Change-Id: I5aba33922b304dd1b8657e6d51d6c937a7f95c81
Reviewed-on: https://go-review.googlesource.com/78112
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/bytes/bytes.go
src/bytes/example_test.go
src/strings/strings.go