Changeset 106957 in webkit
- Timestamp:
- Feb 7, 2012 9:38:00 AM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r106956 r106957 1 2012-02-07 Peter Rybin <peter.rybin@gmail.com> 2 3 Web Inspector: CodeGeneratorInspector.py: extend Array validator functionality 4 https://bugs.webkit.org/show_bug.cgi?id=77919 5 6 Patch by Peter Rybin <peter.rybin@gmail.com> on 2012-02-07 7 Reviewed by Yury Semikhatsky. 8 9 Array validator method runtimeCast is added, internal backing method 10 is moved from .cpp to .h (it's template anyway), boolean validator is 11 supported. 12 13 * inspector/CodeGeneratorInspector.py: 14 (RawTypes.Bool.get_validate_method_params.ValidateMethodParams): 15 (RawTypes.Bool.get_validate_method_params): 16 (TypeBuilder): 17 1 18 2012-02-07 Dean Jackson <dino@apple.com> 2 19 -
trunk/Source/WebCore/inspector/CodeGeneratorInspector.py
r106777 r106957 423 423 @staticmethod 424 424 def get_validate_method_params(): 425 raise Exception("TODO") 425 class ValidateMethodParams: 426 name = "Boolean" 427 var_type = "bool" 428 as_method_name = "Boolean" 429 return ValidateMethodParams 426 430 427 431 @staticmethod … … 1123 1127 """ % class_name) 1124 1128 1125 writer.newline(" typedef StructItemTraits ItemTraits;\n")1129 writer.newline(" typedef TypeBuilder::StructItemTraits ItemTraits;\n") 1126 1130 1127 1131 for prop_data in resolve_data.optional_properties: … … 1168 1172 validator_writer.newline(" bool castRes = value->asObject(&object);\n") 1169 1173 validator_writer.newline(" ASSERT_UNUSED(castRes, castRes);\n") 1170 validator_writer.newline(" InspectorObject::iterator it;\n")1171 1174 for prop_data in resolve_data.main_properties: 1172 validator_writer.newline(" it = object->find(\"%s\");\n" % prop_data.p["name"]) 1173 validator_writer.newline(" ASSERT(it != object->end());\n") 1174 validator_writer.newline(" %s(it->second.get());\n" % prop_data.param_type_binding.get_validator_call_text()) 1175 1176 validator_writer.newline(" int count = %s;\n" % len(resolve_data.main_properties)) 1175 validator_writer.newline(" {\n") 1176 it_name = "%sPos" % prop_data.p["name"] 1177 validator_writer.newline(" InspectorObject::iterator %s;\n" % it_name) 1178 validator_writer.newline(" %s = object->find(\"%s\");\n" % (it_name, prop_data.p["name"])) 1179 validator_writer.newline(" ASSERT(%s != object->end());\n" % it_name) 1180 validator_writer.newline(" %s(%s->second.get());\n" % (prop_data.param_type_binding.get_validator_call_text(), it_name)) 1181 validator_writer.newline(" }\n") 1182 1183 validator_writer.newline(" int foundPropertiesCount = %s;\n" % len(resolve_data.main_properties)) 1177 1184 1178 1185 for prop_data in resolve_data.optional_properties: 1179 validator_writer.newline(" it = object->find(\"%s\");\n" % prop_data.p["name"]) 1180 validator_writer.newline(" if (it != object->end()) {\n") 1181 validator_writer.newline(" %s(it->second.get());\n" % prop_data.param_type_binding.get_validator_call_text()) 1182 validator_writer.newline(" ++count;\n") 1186 validator_writer.newline(" {\n") 1187 it_name = "%sPos" % prop_data.p["name"] 1188 validator_writer.newline(" InspectorObject::iterator %s;\n" % it_name) 1189 validator_writer.newline(" %s = object->find(\"%s\");\n" % (it_name, prop_data.p["name"])) 1190 validator_writer.newline(" if (%s != object->end()) {\n" % it_name) 1191 validator_writer.newline(" %s(%s->second.get());\n" % (prop_data.param_type_binding.get_validator_call_text(), it_name)) 1192 validator_writer.newline(" ++foundPropertiesCount;\n") 1193 validator_writer.newline(" }\n") 1183 1194 validator_writer.newline(" }\n") 1184 1195 1185 validator_writer.newline(" ASSERT( count == object->size());\n")1196 validator_writer.newline(" ASSERT(foundPropertiesCount == object->size());\n") 1186 1197 validator_writer.newline("}\n\n\n") 1187 1198 … … 2144 2155 } 2145 2156 2157 static PassRefPtr<Array<T> > runtimeCast(PassRefPtr<InspectorValue> value) 2158 { 2159 RefPtr<InspectorArray> array; 2160 bool castRes = value->asArray(&array); 2161 ASSERT_UNUSED(castRes, castRes); 2162 #if !ASSERT_DISABLED 2163 assertCorrectValue(array.get()); 2164 #endif // !ASSERT_DISABLED 2165 COMPILE_ASSERT(sizeof(Array<T>) == sizeof(InspectorArray), type_cast_problem); 2166 return static_cast<Array<T>*>(array.get()); 2167 } 2168 2146 2169 #if """ + VALIDATOR_IFDEF_NAME + """ 2147 static void assertCorrectValue(InspectorValue* value); 2170 static void assertCorrectValue(InspectorValue* value) 2171 { 2172 RefPtr<InspectorArray> array; 2173 bool castRes = value->asArray(&array); 2174 ASSERT_UNUSED(castRes, castRes); 2175 for (unsigned i = 0; i < array->length(); i++) 2176 ArrayItemHelper<T>::Traits::template assertCorrectValue<T>(array->get(i).get()); 2177 } 2178 2148 2179 #endif // """ + VALIDATOR_IFDEF_NAME + """ 2149 2180 }; … … 2219 2250 2220 2251 #if """ + VALIDATOR_IFDEF_NAME + """ 2221 2222 template<typename T>2223 void TypeBuilder::Array<T>::assertCorrectValue(InspectorValue* value)2224 {2225 RefPtr<InspectorArray> array;2226 bool castRes = value->asArray(&array);2227 ASSERT_UNUSED(castRes, castRes);2228 for (unsigned i = 0; i < array->length(); i++)2229 ArrayItemHelper<T>::Traits::template assertCorrectValue<T>(array->get(i).get());2230 }2231 2252 2232 2253 $validatorCode
Note: See TracChangeset
for help on using the changeset viewer.