aboutsummaryrefslogtreecommitdiff
path: root/src/unicode/utf8/utf8.go
diff options
context:
space:
mode:
authorIlya Tocar <ilya.tocar@intel.com>2017-09-12 14:23:09 -0500
committerIlya Tocar <ilya.tocar@intel.com>2017-09-12 20:18:53 +0000
commit6237ab2c3155ed4c4fa064d1f0cb4f81eda10be1 (patch)
treef4c0b8347a3c9730037f72010f808c775779c94b /src/unicode/utf8/utf8.go
parent6d33df1d65c405a3624dbb792112b8ce399f470f (diff)
downloadgo-6237ab2c3155ed4c4fa064d1f0cb4f81eda10be1.tar.xz
unicode/utf8: make FullRune inlinable
This has same readability and allows to inline FullRune for massive performance gain: FullASCIIRune-6 4.36ns ± 0% 1.25ns ± 0% -71.33% (p=0.000 n=8+10) FullJapaneseRune-6 4.70ns ± 0% 1.42ns ± 1% -69.68% (p=0.000 n=9+10) Change-Id: I95edd6292417a28aac244e40afb713596a087d93 Reviewed-on: https://go-review.googlesource.com/63332 Run-TryBot: Ilya Tocar <ilya.tocar@intel.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
Diffstat (limited to 'src/unicode/utf8/utf8.go')
-rw-r--r--src/unicode/utf8/utf8.go20
1 files changed, 8 insertions, 12 deletions
diff --git a/src/unicode/utf8/utf8.go b/src/unicode/utf8/utf8.go
index 6ccd464373..db845ab2f2 100644
--- a/src/unicode/utf8/utf8.go
+++ b/src/unicode/utf8/utf8.go
@@ -110,12 +110,10 @@ func FullRune(p []byte) bool {
}
// Must be short or invalid.
accept := acceptRanges[x>>4]
- if n > 1 {
- if c := p[1]; c < accept.lo || accept.hi < c {
- return true
- } else if n > 2 && (p[2] < locb || hicb < p[2]) {
- return true
- }
+ if n > 1 && (p[1] < accept.lo || accept.hi < p[1]) {
+ return true
+ } else if n > 2 && (p[2] < locb || hicb < p[2]) {
+ return true
}
return false
}
@@ -132,12 +130,10 @@ func FullRuneInString(s string) bool {
}
// Must be short or invalid.
accept := acceptRanges[x>>4]
- if n > 1 {
- if c := s[1]; c < accept.lo || accept.hi < c {
- return true
- } else if n > 2 && (s[2] < locb || hicb < s[2]) {
- return true
- }
+ if n > 1 && (s[1] < accept.lo || accept.hi < s[1]) {
+ return true
+ } else if n > 2 && (s[2] < locb || hicb < s[2]) {
+ return true
}
return false
}