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

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

Issue 2778053003: Revert of Enable -Wdeprecated-register. (Closed)
Patch Set: Created 3 years, 8 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
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 2
3 import subprocess 3 import subprocess
4 import sys 4 import sys
5 5
6 import css_properties 6 import css_properties
7 import json5_generator 7 import json5_generator
8 import license 8 import license
9 9
10 10
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 #include "wtf/text/AtomicString.h" 89 #include "wtf/text/AtomicString.h"
90 #include "wtf/text/WTFString.h" 90 #include "wtf/text/WTFString.h"
91 91
92 #ifdef _MSC_VER 92 #ifdef _MSC_VER
93 // Disable the warnings from casting a 64-bit pointer to 32-bit long 93 // Disable the warnings from casting a 64-bit pointer to 32-bit long
94 // warning C4302: 'type cast': truncation from 'char (*)[28]' to 'long' 94 // warning C4302: 'type cast': truncation from 'char (*)[28]' to 'long'
95 // warning C4311: 'type cast': pointer truncation from 'char (*)[18]' to 'long' 95 // warning C4311: 'type cast': pointer truncation from 'char (*)[18]' to 'long'
96 #pragma warning(disable : 4302 4311) 96 #pragma warning(disable : 4302 4311)
97 #endif 97 #endif
98 98
99 #if defined(__clang__)
100 #pragma clang diagnostic push
101 // TODO(thakis): Remove once we use a gperf that no longer produces "register".
102 #pragma clang diagnostic ignored "-Wdeprecated-register"
103 #endif
104
105 namespace blink { 99 namespace blink {
106 static const char propertyNameStringsPool[] = { 100 static const char propertyNameStringsPool[] = {
107 %(property_name_strings)s 101 %(property_name_strings)s
108 }; 102 };
109 103
110 static const unsigned short propertyNameStringsOffsets[] = { 104 static const unsigned short propertyNameStringsOffsets[] = {
111 %(property_name_offsets)s 105 %(property_name_offsets)s
112 }; 106 };
113 107
114 %%} 108 %%}
115 %%struct-type 109 %%struct-type
116 struct Property; 110 struct Property;
117 %%omit-struct-type 111 %%omit-struct-type
118 %%language=C++ 112 %%language=C++
119 %%readonly-tables 113 %%readonly-tables
120 %%global-table 114 %%global-table
121 %%compare-strncmp 115 %%compare-strncmp
122 %%define class-name %(class_name)sHash 116 %%define class-name %(class_name)sHash
123 %%define lookup-function-name findPropertyImpl 117 %%define lookup-function-name findPropertyImpl
124 %%define hash-function-name property_hash_function 118 %%define hash-function-name property_hash_function
125 %%define slot-name nameOffset 119 %%define slot-name nameOffset
126 %%define word-array-name property_word_list 120 %%define word-array-name property_word_list
127 %%enum 121 %%enum
128 %%%% 122 %%%%
129 %(property_to_enum_map)s 123 %(property_to_enum_map)s
130 %%%% 124 %%%%
131 125 const Property* findProperty(register const char* str, register unsigned int len )
132 #if defined(__clang__) 126 {
133 #pragma clang diagnostic pop 127 return %(class_name)sHash::findPropertyImpl(str, len);
134 #endif
135
136 const Property* findProperty(const char* str, unsigned int len) {
137 return %(class_name)sHash::findPropertyImpl(str, len);
138 } 128 }
139 129
140 const char* getPropertyName(CSSPropertyID id) { 130 const char* getPropertyName(CSSPropertyID id)
141 DCHECK(isCSSPropertyIDWithName(id)); 131 {
142 int index = id - firstCSSProperty; 132 DCHECK(isCSSPropertyIDWithName(id));
143 return propertyNameStringsPool + propertyNameStringsOffsets[index]; 133 int index = id - firstCSSProperty;
134 return propertyNameStringsPool + propertyNameStringsOffsets[index];
144 } 135 }
145 136
146 const AtomicString& getPropertyNameAtomicString(CSSPropertyID id) { 137 const AtomicString& getPropertyNameAtomicString(CSSPropertyID id)
147 DCHECK(isCSSPropertyIDWithName(id)); 138 {
148 int index = id - firstCSSProperty; 139 DCHECK(isCSSPropertyIDWithName(id));
149 static AtomicString* propertyStrings = 140 int index = id - firstCSSProperty;
150 new AtomicString[lastUnresolvedCSSProperty]; // Leaked. 141 static AtomicString* propertyStrings = new AtomicString[lastUnresolvedCSSPro perty]; // Intentionally never destroyed.
151 AtomicString& propertyString = propertyStrings[index]; 142 AtomicString& propertyString = propertyStrings[index];
152 if (propertyString.isNull()) { 143 if (propertyString.isNull())
153 propertyString = AtomicString(propertyNameStringsPool + 144 propertyString = AtomicString(propertyNameStringsPool + propertyNameStri ngsOffsets[index]);
154 propertyNameStringsOffsets[index]); 145 return propertyString;
155 }
156 return propertyString;
157 } 146 }
158 147
159 String getPropertyNameString(CSSPropertyID id) { 148 String getPropertyNameString(CSSPropertyID id)
160 // We share the StringImpl with the AtomicStrings. 149 {
161 return getPropertyNameAtomicString(id).getString(); 150 // We share the StringImpl with the AtomicStrings.
151 return getPropertyNameAtomicString(id).getString();
162 } 152 }
163 153
164 String getJSPropertyName(CSSPropertyID id) { 154 String getJSPropertyName(CSSPropertyID id)
165 char result[maxCSSPropertyNameLength + 1]; 155 {
166 const char* cssPropertyName = getPropertyName(id); 156 char result[maxCSSPropertyNameLength + 1];
167 const char* propertyNamePointer = cssPropertyName; 157 const char* cssPropertyName = getPropertyName(id);
168 if (!propertyNamePointer) 158 const char* propertyNamePointer = cssPropertyName;
169 return emptyString; 159 if (!propertyNamePointer)
160 return emptyString;
170 161
171 char* resultPointer = result; 162 char* resultPointer = result;
172 while (char character = *propertyNamePointer++) { 163 while (char character = *propertyNamePointer++) {
173 if (character == '-') { 164 if (character == '-') {
174 char nextCharacter = *propertyNamePointer++; 165 char nextCharacter = *propertyNamePointer++;
175 if (!nextCharacter) 166 if (!nextCharacter)
176 break; 167 break;
177 character = (propertyNamePointer - 2 != cssPropertyName) 168 character = (propertyNamePointer - 2 != cssPropertyName) ? toASCIIUp per(nextCharacter) : nextCharacter;
178 ? toASCIIUpper(nextCharacter) : nextCharacter; 169 }
170 *resultPointer++ = character;
179 } 171 }
180 *resultPointer++ = character; 172 *resultPointer = '\\0';
181 } 173 return String(result);
182 *resultPointer = '\\0';
183 return String(result);
184 } 174 }
185 175
186 CSSPropertyID cssPropertyID(const String& string) 176 CSSPropertyID cssPropertyID(const String& string)
187 { 177 {
188 return resolveCSSPropertyID(unresolvedCSSPropertyID(string)); 178 return resolveCSSPropertyID(unresolvedCSSPropertyID(string));
189 } 179 }
190 180
191 } // namespace blink 181 } // namespace blink
192 """ 182 """
193 183
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
248 # CalledProcessError like subprocess would do when shell=True is set. 238 # CalledProcessError like subprocess would do when shell=True is set.
249 try: 239 try:
250 gperf = subprocess.Popen(gperf_args, stdin=subprocess.PIPE, stdout=s ubprocess.PIPE, universal_newlines=True) 240 gperf = subprocess.Popen(gperf_args, stdin=subprocess.PIPE, stdout=s ubprocess.PIPE, universal_newlines=True)
251 return gperf.communicate(gperf_input)[0] 241 return gperf.communicate(gperf_input)[0]
252 except OSError: 242 except OSError:
253 raise subprocess.CalledProcessError(127, gperf_args, output='Command not found.') 243 raise subprocess.CalledProcessError(127, gperf_args, output='Command not found.')
254 244
255 245
256 if __name__ == "__main__": 246 if __name__ == "__main__":
257 json5_generator.Maker(CSSPropertyNamesWriter).main() 247 json5_generator.Maker(CSSPropertyNamesWriter).main()
OLDNEW
« no previous file with comments | « build/config/compiler/BUILD.gn ('k') | third_party/WebKit/Source/build/scripts/make_css_value_keywords.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698