| OLD | NEW |
| 1 /* C++ code produced by gperf version 3.0.3 */ | 1 /* C++ code produced by gperf version 3.0.3 */ |
| 2 /* Command-line: gperf -a -L C++ -C -c -o -t -k '*' -NFindDomain -ZPerfect_Hash_
Test1 -D effective_tld_names_unittest1.gperf */ | 2 /* Command-line: gperf -a -L C++ -C -c -o -t -k '*' -NFindDomain -ZPerfect_Hash_
Test1 -D effective_tld_names_unittest1.gperf */ |
| 3 | 3 |
| 4 #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ | 4 #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ |
| 5 && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ | 5 && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \ |
| 6 && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ | 6 && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \ |
| 7 && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ | 7 && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \ |
| 8 && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ | 8 && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \ |
| 9 && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ | 9 && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \ |
| 10 && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ | 10 && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \ |
| (...skipping 23 matching lines...) Expand all Loading... |
| 34 // Use of this source code is governed by a BSD-style license that can be | 34 // Use of this source code is governed by a BSD-style license that can be |
| 35 // found in the LICENSE file. | 35 // found in the LICENSE file. |
| 36 // Test file used by registry_controlled_domain_unittest. | 36 // Test file used by registry_controlled_domain_unittest. |
| 37 // We edit this file manually, then run | 37 // We edit this file manually, then run |
| 38 // gperf -a -L "C++" -C -c -o -t -k '*' -NFindDomain -ZPerfect_Hash_Test1 -D eff
ective_tld_names_unittest1.gperf > effective_tld_names_unittest1.cc | 38 // gperf -a -L "C++" -C -c -o -t -k '*' -NFindDomain -ZPerfect_Hash_Test1 -D eff
ective_tld_names_unittest1.gperf > effective_tld_names_unittest1.cc |
| 39 // to generate the perfect hashmap. | 39 // to generate the perfect hashmap. |
| 40 #line 10 "effective_tld_names_unittest1.gperf" | 40 #line 10 "effective_tld_names_unittest1.gperf" |
| 41 struct DomainRule { | 41 struct DomainRule { |
| 42 const char *name; | 42 const char *name; |
| 43 int type; // 1: exception, 2: wildcard | 43 int type; // 1: exception, 2: wildcard |
| 44 bool is_private; |
| 44 }; | 45 }; |
| 45 | 46 |
| 46 #define TOTAL_KEYWORDS 8 | 47 #define TOTAL_KEYWORDS 11 |
| 47 #define MIN_WORD_LENGTH 1 | 48 #define MIN_WORD_LENGTH 1 |
| 48 #define MAX_WORD_LENGTH 11 | 49 #define MAX_WORD_LENGTH 11 |
| 49 #define MIN_HASH_VALUE 1 | 50 #define MIN_HASH_VALUE 1 |
| 50 #define MAX_HASH_VALUE 16 | 51 #define MAX_HASH_VALUE 17 |
| 51 /* maximum key range = 16, duplicates = 0 */ | 52 /* maximum key range = 17, duplicates = 0 */ |
| 52 | 53 |
| 53 class Perfect_Hash_Test1 | 54 class Perfect_Hash_Test1 |
| 54 { | 55 { |
| 55 private: | 56 private: |
| 56 static inline unsigned int hash (const char *str, unsigned int len); | 57 static inline unsigned int hash (const char *str, unsigned int len); |
| 57 public: | 58 public: |
| 58 static const struct DomainRule *FindDomain (const char *str, unsigned int len)
; | 59 static const struct DomainRule *FindDomain (const char *str, unsigned int len)
; |
| 59 }; | 60 }; |
| 60 | 61 |
| 61 inline unsigned int | 62 inline unsigned int |
| 62 Perfect_Hash_Test1::hash (register const char *str, register unsigned int len) | 63 Perfect_Hash_Test1::hash (register const char *str, register unsigned int len) |
| 63 { | 64 { |
| 64 static const unsigned char asso_values[] = | 65 static const unsigned char asso_values[] = |
| 65 { | 66 { |
| 66 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | 67 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, |
| 67 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | 68 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, |
| 68 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | 69 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, |
| 69 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | 70 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, |
| 70 17, 17, 17, 17, 17, 17, 0, 17, 17, 17, | 71 18, 18, 18, 18, 18, 18, 0, 18, 18, 18, |
| 71 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | 72 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, |
| 72 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | 73 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, |
| 73 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | 74 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, |
| 74 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | 75 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, |
| 75 17, 17, 17, 17, 17, 17, 17, 0, 0, 0, | 76 18, 18, 18, 18, 18, 18, 18, 0, 0, 0, |
| 76 17, 5, 0, 17, 17, 17, 0, 17, 17, 0, | 77 18, 5, 0, 18, 18, 0, 0, 18, 18, 0, |
| 77 17, 0, 0, 17, 0, 17, 17, 17, 17, 17, | 78 5, 0, 0, 18, 0, 18, 5, 18, 0, 18, |
| 78 17, 17, 0, 17, 17, 17, 17, 17, 17, 17, | 79 18, 18, 0, 18, 18, 18, 18, 18, 18, 18, |
| 79 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | 80 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, |
| 80 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | 81 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, |
| 81 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | 82 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, |
| 82 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | 83 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, |
| 83 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | 84 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, |
| 84 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | 85 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, |
| 85 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | 86 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, |
| 86 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | 87 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, |
| 87 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | 88 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, |
| 88 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | 89 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, |
| 89 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | 90 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, |
| 90 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, | 91 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, |
| 91 17, 17, 17, 17, 17, 17 | 92 18, 18, 18, 18, 18, 18 |
| 92 }; | 93 }; |
| 93 register int hval = len; | 94 register int hval = len; |
| 94 | 95 |
| 95 switch (hval) | 96 switch (hval) |
| 96 { | 97 { |
| 97 default: | 98 default: |
| 98 hval += asso_values[(unsigned char)str[10]]; | 99 hval += asso_values[(unsigned char)str[10]]; |
| 99 /*FALLTHROUGH*/ | 100 /*FALLTHROUGH*/ |
| 100 case 10: | 101 case 10: |
| 101 hval += asso_values[(unsigned char)str[9]]; | 102 hval += asso_values[(unsigned char)str[9]]; |
| (...skipping 27 matching lines...) Expand all Loading... |
| 129 break; | 130 break; |
| 130 } | 131 } |
| 131 return hval; | 132 return hval; |
| 132 } | 133 } |
| 133 | 134 |
| 134 const struct DomainRule * | 135 const struct DomainRule * |
| 135 Perfect_Hash_Test1::FindDomain (register const char *str, register unsigned int
len) | 136 Perfect_Hash_Test1::FindDomain (register const char *str, register unsigned int
len) |
| 136 { | 137 { |
| 137 static const struct DomainRule wordlist[] = | 138 static const struct DomainRule wordlist[] = |
| 138 { | 139 { |
| 140 #line 22 "effective_tld_names_unittest1.gperf" |
| 141 {"c", 2, false}, |
| 142 #line 16 "effective_tld_names_unittest1.gperf" |
| 143 {"jp", 0, false}, |
| 144 #line 23 "effective_tld_names_unittest1.gperf" |
| 145 {"b.c", 1, false}, |
| 146 #line 17 "effective_tld_names_unittest1.gperf" |
| 147 {"ac.jp", 0, false}, |
| 148 #line 18 "effective_tld_names_unittest1.gperf" |
| 149 {"bar.jp", 2, false}, |
| 150 #line 24 "effective_tld_names_unittest1.gperf" |
| 151 {"no", 0, false}, |
| 152 #line 19 "effective_tld_names_unittest1.gperf" |
| 153 {"baz.bar.jp", 2, false}, |
| 139 #line 21 "effective_tld_names_unittest1.gperf" | 154 #line 21 "effective_tld_names_unittest1.gperf" |
| 140 {"c", 2}, | 155 {"bar.baz.com", 0, false}, |
| 141 #line 15 "effective_tld_names_unittest1.gperf" | 156 #line 25 "effective_tld_names_unittest1.gperf" |
| 142 {"jp", 0}, | 157 {"priv.no", 0, true}, |
| 143 #line 22 "effective_tld_names_unittest1.gperf" | |
| 144 {"b.c", 1}, | |
| 145 #line 16 "effective_tld_names_unittest1.gperf" | |
| 146 {"ac.jp", 0}, | |
| 147 #line 17 "effective_tld_names_unittest1.gperf" | |
| 148 {"bar.jp", 2}, | |
| 149 #line 18 "effective_tld_names_unittest1.gperf" | |
| 150 {"baz.bar.jp", 2}, | |
| 151 #line 20 "effective_tld_names_unittest1.gperf" | 158 #line 20 "effective_tld_names_unittest1.gperf" |
| 152 {"bar.baz.com", 0}, | 159 {"pref.bar.jp", 1, false}, |
| 153 #line 19 "effective_tld_names_unittest1.gperf" | 160 #line 26 "effective_tld_names_unittest1.gperf" |
| 154 {"pref.bar.jp", 1} | 161 {"private", 0, true} |
| 155 }; | 162 }; |
| 156 | 163 |
| 157 static const signed char lookup[] = | 164 static const signed char lookup[] = |
| 158 { | 165 { |
| 159 -1, 0, 1, 2, -1, 3, 4, -1, -1, -1, 5, 6, -1, -1, | 166 -1, 0, 1, 2, -1, 3, 4, 5, -1, -1, 6, 7, 8, -1, |
| 160 -1, -1, 7 | 167 -1, -1, 9, 10 |
| 161 }; | 168 }; |
| 162 | 169 |
| 163 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) | 170 if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) |
| 164 { | 171 { |
| 165 register int key = hash (str, len); | 172 register int key = hash (str, len); |
| 166 | 173 |
| 167 if (key <= MAX_HASH_VALUE && key >= 0) | 174 if (key <= MAX_HASH_VALUE && key >= 0) |
| 168 { | 175 { |
| 169 register int index = lookup[key]; | 176 register int index = lookup[key]; |
| 170 | 177 |
| 171 if (index >= 0) | 178 if (index >= 0) |
| 172 { | 179 { |
| 173 register const char *s = wordlist[index].name; | 180 register const char *s = wordlist[index].name; |
| 174 | 181 |
| 175 if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] ==
'\0') | 182 if (*str == *s && !strncmp (str + 1, s + 1, len - 1) && s[len] ==
'\0') |
| 176 return &wordlist[index]; | 183 return &wordlist[index]; |
| 177 } | 184 } |
| 178 } | 185 } |
| 179 } | 186 } |
| 180 return 0; | 187 return 0; |
| 181 } | 188 } |
| 182 #line 23 "effective_tld_names_unittest1.gperf" | 189 #line 27 "effective_tld_names_unittest1.gperf" |
| 183 | 190 |
| OLD | NEW |