Merge pull request #3365 from kolyshkin/checkPropertyName-speedup

libct/specconv: checkPropertyName speedup
This commit is contained in:
Akihiro Suda
2022-02-17 12:59:23 +09:00
committed by GitHub
2 changed files with 6 additions and 4 deletions
+4 -2
View File
@@ -538,8 +538,10 @@ func checkPropertyName(s string) error {
if len(s) < 3 {
return errors.New("too short")
}
// Check ASCII characters rather than Unicode runes.
for _, ch := range s {
// Check ASCII characters rather than Unicode runes,
// so we have to use indexes rather than range.
for i := 0; i < len(s); i++ {
ch := s[i]
if (ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z') {
continue
}
+2 -2
View File
@@ -759,7 +759,7 @@ func TestInitSystemdProps(t *testing.T) {
}
}
func TestIsValidName(t *testing.T) {
func TestCheckPropertyName(t *testing.T) {
testCases := []struct {
in string
valid bool
@@ -784,7 +784,7 @@ func TestIsValidName(t *testing.T) {
}
}
func BenchmarkIsValidName(b *testing.B) {
func BenchmarkCheckPropertyName(b *testing.B) {
for i := 0; i < b.N; i++ {
for _, s := range []string{"", "xx", "xxx", "someValidName", "A name", "Кир", "მადლობა", "合い言葉"} {
_ = checkPropertyName(s)