Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: Source/build/scripts/make_css_property_names.py

Issue 196413006: [MemUsage][BinarySize] More perfect hashes for CSS strings. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | Source/build/scripts/make_css_value_keywords.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 2
3 import os.path 3 import os.path
4 import re 4 import re
5 import subprocess 5 import subprocess
6 import sys 6 import sys
7 7
8 from in_file import InFile 8 from in_file import InFile
9 import in_generator 9 import in_generator
10 import license 10 import license
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 %%} 90 %%}
91 %%struct-type 91 %%struct-type
92 struct Property; 92 struct Property;
93 %%omit-struct-type 93 %%omit-struct-type
94 %%language=C++ 94 %%language=C++
95 %%readonly-tables 95 %%readonly-tables
96 %%global-table 96 %%global-table
97 %%compare-strncmp 97 %%compare-strncmp
98 %%define class-name %(class_name)sHash 98 %%define class-name %(class_name)sHash
99 %%define lookup-function-name findPropertyImpl 99 %%define lookup-function-name findPropertyImpl
100 %%define hash-function-name propery_hash_function 100 %%define hash-function-name property_hash_function
101 %%define slot-name nameOffset 101 %%define slot-name nameOffset
102 %%define word-array-name property_wordlist 102 %%define word-array-name property_word_list
103 %%enum 103 %%enum
104 %%%% 104 %%%%
105 %(property_to_enum_map)s 105 %(property_to_enum_map)s
106 %%%% 106 %%%%
107 const Property* findProperty(register const char* str, register unsigned int len ) 107 const Property* findProperty(register const char* str, register unsigned int len )
108 { 108 {
109 return %(class_name)sHash::findPropertyImpl(str, len); 109 return %(class_name)sHash::findPropertyImpl(str, len);
110 } 110 }
111 111
112 const char* getPropertyName(CSSPropertyID id) 112 const char* getPropertyName(CSSPropertyID id)
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 238
239 gperf_input = GPERF_TEMPLATE % { 239 gperf_input = GPERF_TEMPLATE % {
240 'license': license.license_for_generated_cpp(), 240 'license': license.license_for_generated_cpp(),
241 'class_name': self.class_name, 241 'class_name': self.class_name,
242 'property_name_strings': '\n'.join(map(lambda property: ' "%(name )s\\0"' % property, self._properties)), 242 'property_name_strings': '\n'.join(map(lambda property: ' "%(name )s\\0"' % property, self._properties)),
243 'property_name_offsets': '\n'.join(map(lambda offset: ' %d,' % of fset, property_offsets)), 243 'property_name_offsets': '\n'.join(map(lambda offset: ' %d,' % of fset, property_offsets)),
244 'property_to_enum_map': '\n'.join(map(lambda property: '%(name)s, %( enum_name)s' % property, self._properties + self._aliases)), 244 'property_to_enum_map': '\n'.join(map(lambda property: '%(name)s, %( enum_name)s' % property, self._properties + self._aliases)),
245 'internal_properties': '\n'.join(map(self._case_properties, filter(l ambda property: property['is_internal'], self._properties))), 245 'internal_properties': '\n'.join(map(self._case_properties, filter(l ambda property: property['is_internal'], self._properties))),
246 } 246 }
247 # FIXME: If we could depend on Python 2.7, we would use subprocess.check _output 247 # FIXME: If we could depend on Python 2.7, we would use subprocess.check _output
248 gperf_args = [self.gperf_path, '--key-positions=*', '-P', '-D', '-n', '- s', '2'] 248 gperf_args = [self.gperf_path, '--key-positions=*', '-P', '-n']
249 gperf_args.extend(['-m', '50']) # Pick best of 50 attempts.
250 gperf_args.append('-D') # Allow duplicate hashes -> More compact code.
249 gperf = subprocess.Popen(gperf_args, stdin=subprocess.PIPE, stdout=subpr ocess.PIPE, universal_newlines=True) 251 gperf = subprocess.Popen(gperf_args, stdin=subprocess.PIPE, stdout=subpr ocess.PIPE, universal_newlines=True)
250 return gperf.communicate(gperf_input)[0] 252 return gperf.communicate(gperf_input)[0]
251 253
252 254
253 if __name__ == "__main__": 255 if __name__ == "__main__":
254 in_generator.Maker(CSSPropertiesWriter).main(sys.argv) 256 in_generator.Maker(CSSPropertiesWriter).main(sys.argv)
OLDNEW
« no previous file with comments | « no previous file | Source/build/scripts/make_css_value_keywords.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698