Title: [103764] trunk/Source/WebCore
Revision
103764
Author
[email protected]
Date
2011-12-28 05:41:15 -0800 (Wed, 28 Dec 2011)

Log Message

Unreviewed, rolling out r103763.
http://trac.webkit.org/changeset/103763
https://bugs.webkit.org/show_bug.cgi?id=75307

"Compilation fails on Snow Leopard" (Requested by yurys on
#webkit).

Patch by Sheriff Bot <[email protected]> on 2011-12-28

* inspector/CodeGeneratorInspector.py:
(Helper):
(create_ad_hoc_type_declaration.Helper):
(CodeGenerator.generate_type_builder):
(get_in_c_type_text):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (103763 => 103764)


--- trunk/Source/WebCore/ChangeLog	2011-12-28 13:29:33 UTC (rev 103763)
+++ trunk/Source/WebCore/ChangeLog	2011-12-28 13:41:15 UTC (rev 103764)
@@ -1,3 +1,18 @@
+2011-12-28  Sheriff Bot  <[email protected]>
+
+        Unreviewed, rolling out r103763.
+        http://trac.webkit.org/changeset/103763
+        https://bugs.webkit.org/show_bug.cgi?id=75307
+
+        "Compilation fails on Snow Leopard" (Requested by yurys on
+        #webkit).
+
+        * inspector/CodeGeneratorInspector.py:
+        (Helper):
+        (create_ad_hoc_type_declaration.Helper):
+        (CodeGenerator.generate_type_builder):
+        (get_in_c_type_text):
+
 2011-12-28  Peter Rybin  <[email protected]>
 
         Web Inspector: CodeGeneratorInspector.py: generate enum types.

Modified: trunk/Source/WebCore/inspector/CodeGeneratorInspector.py (103763 => 103764)


--- trunk/Source/WebCore/inspector/CodeGeneratorInspector.py	2011-12-28 13:29:33 UTC (rev 103763)
+++ trunk/Source/WebCore/inspector/CodeGeneratorInspector.py	2011-12-28 13:41:15 UTC (rev 103764)
@@ -51,7 +51,6 @@
 # Manually-filled map of type name replacements.
 TYPE_NAME_FIX_MAP = {
     "RGBA": "Rgba",  # RGBA is reported to be conflicting with a define name in Windows CE.
-    "": "Empty",
 }
 
 
@@ -520,28 +519,6 @@
         return Writer(new_output, self.indent + additional_indent)
 
 
-class EnumConstants:
-    map_ = {}
-    constants_ = []
-
-    @classmethod
-    def add_constant(cls, value):
-        if value in cls.map_:
-            return cls.map_[value]
-        else:
-            pos = len(cls.map_)
-            cls.map_[value] = pos
-            cls.constants_.append(value)
-            return pos
-
-    @classmethod
-    def get_enum_constant_code(cls):
-        output = []
-        for item in cls.constants_:
-            output.append("    \"" + item + "\"")
-        return join(output, ",\n") + "\n"
-
-
 class TypeBindings:
     @staticmethod
     def create_named_type_declaration(json_typable, context_domain_name, type_data):
@@ -549,7 +526,6 @@
 
         class Helper:
             is_ad_hoc = False
-            full_name_prefix = "TypeBuilder::" + context_domain_name + "::"
 
             @staticmethod
             def write_doc(writer):
@@ -570,7 +546,6 @@
     def create_ad_hoc_type_declaration(json_typable, context_domain_name, ad_hoc_type_context):
         class Helper:
             is_ad_hoc = True
-            full_name_prefix = ""
 
             @staticmethod
             def write_doc(writer):
@@ -596,28 +571,23 @@
                         class CodeGenerator:
                             @staticmethod
                             def generate_type_builder(writer, forward_listener):
+                                if comment_out:
+                                    writer = writer.get_indented("// ")
                                 enum = json_typable["enum"]
                                 helper.write_doc(writer)
                                 enum_name = fixed_type_name.class_name
                                 fixed_type_name.output_comment(writer)
-                                writer.newline("struct ")
+                                writer.newline("namespace ")
                                 writer.append(enum_name)
                                 writer.append(" {\n")
-                                writer.newline("    enum Enum {\n")
                                 for enum_item in enum:
-                                    enum_pos = EnumConstants.add_constant(enum_item)
-
                                     item_c_name = enum_item.replace('-', '_')
-                                    item_c_name = Capitalizer.lower_camel_case_to_upper(item_c_name)
-                                    if item_c_name in TYPE_NAME_FIX_MAP:
-                                        item_c_name = TYPE_NAME_FIX_MAP[item_c_name]
-                                    writer.newline("        ")
-                                    writer.append(item_c_name)
-                                    writer.append(" = ")
-                                    writer.append("%s" % enum_pos)
-                                    writer.append(",\n")
-                                writer.newline("    };\n")
-                                writer.newline("}; // struct ")
+                                    writer.newline("const char* const ")
+                                    writer.append(Capitalizer.upper_camel_case_to_lower(item_c_name))
+                                    writer.append(" = \"")
+                                    writer.append(enum_item)
+                                    writer.append("\";\n")
+                                writer.newline("} // namespace ")
                                 writer.append(enum_name)
                                 writer.append("\n\n")
 
@@ -629,13 +599,9 @@
 
                     @classmethod
                     def get_in_c_type_text(cls, optional):
-                        return helper.full_name_prefix + fixed_type_name.class_name + "::Enum"
+                        return cls.reduce_to_raw_type().get_c_param_type(ParamType.EVENT, optional).get_text()
 
                     @staticmethod
-                    def get_setter_value_expression_pattern():
-                        return "getEnumConstantValue(%s)"
-
-                    @staticmethod
                     def reduce_to_raw_type():
                         return RawTypes.String
 
@@ -667,10 +633,6 @@
                     def reduce_to_raw_type():
                         return RawTypes.String
 
-                    @staticmethod
-                    def get_setter_value_expression_pattern():
-                        return None
-
                     @classmethod
                     def get_in_c_type_text(cls, optional):
                         #FIXME: return a typedef name instead.
@@ -753,29 +715,28 @@
 
                                     param_type_binding = resolve_param_type(prop, context_domain_name, ad_hoc_type_context)
                                     param_raw_type = param_type_binding.reduce_to_raw_type()
-                                    for param_type_opt in MethodGenerateModes.get_modes(param_type_binding):
-                                        writer.newline_multiline("""
+                                    annotated_type = get_annotated_type_text(param_raw_type.get_c_param_type(ParamType.TYPE_BUILDER_OUTPUT, False).get_text(),
+                                        param_type_binding.get_in_c_type_text(False))
+                                    writer.newline_multiline("""
         Builder<STATE | %s>& set%s(%s value)
         {
             COMPILE_ASSERT(!(STATE & %s), property_%s_already_set);
-            m_result->set%s("%s", %s);
+            m_result->set%s("%s", value);
             return castState<%s>();
         }
 """
-                                        % (state_enum_items[pos],
-                                           Capitalizer.lower_camel_case_to_upper(prop_name),
-                                           param_type_opt.get_c_param_type_text(param_type_binding),
-                                           state_enum_items[pos], prop_name,
-                                           param_raw_type.get_setter_name(), prop_name,
-                                           param_type_opt.get_setter_value_expression(param_type_binding, "value"),
-                                           state_enum_items[pos]))
+                                    % (state_enum_items[pos],
+                                       Capitalizer.lower_camel_case_to_upper(prop_name),
+                                       annotated_type,
+                                       state_enum_items[pos], prop_name,
+                                       param_raw_type.get_setter_name(), prop_name, state_enum_items[pos]))
 
-                                        code_generator = param_type_binding.get_code_generator()
-                                        if code_generator:
-                                            code_generator.register_use(forward_listener)
-
                                     pos += 1
 
+                                    code_generator = param_type_binding.get_code_generator()
+                                    if code_generator:
+                                        code_generator.register_use(forward_listener)
+
                                 writer.newline_multiline("""
         operator RefPtr<%s>& ()
         {
@@ -812,16 +773,14 @@
 
                                     param_type_binding = resolve_param_type(prop, context_domain_name, ad_hoc_type_context)
                                     setter_name = "set%s" % Capitalizer.lower_camel_case_to_upper(prop_name)
+                                    writer.append_multiline("\n    void %s" % setter_name)
+                                    annotated_type = get_annotated_type_text(param_type_binding.reduce_to_raw_type().get_c_param_type(ParamType.TYPE_BUILDER_OUTPUT, False).get_text(),
+                                        param_type_binding.get_in_c_type_text(False))
+                                    writer.append("(%s value)\n" % annotated_type)
+                                    writer.newline("    {\n")
+                                    writer.newline("        this->set%s(\"%s\", value);\n" % (param_type_binding.reduce_to_raw_type().get_setter_name(), prop["name"]))
+                                    writer.newline("    }\n")
 
-                                    for param_type_opt in MethodGenerateModes.get_modes(param_type_binding):
-                                        writer.append_multiline("\n    void %s" % setter_name)
-                                        writer.append("(%s value)\n" % param_type_opt.get_c_param_type_text(param_type_binding))
-                                        writer.newline("    {\n")
-                                        writer.newline("        this->set%s(\"%s\", %s);\n"
-                                            % (param_type_binding.reduce_to_raw_type().get_setter_name(), prop["name"],
-                                               param_type_opt.get_setter_value_expression(param_type_binding, "value")))
-                                        writer.newline("    }\n")
-
                                     code_generator = param_type_binding.get_code_generator()
                                     if code_generator:
                                         code_generator.register_use(forward_listener)
@@ -866,13 +825,9 @@
 
                     @classmethod
                     def get_in_c_type_text(cls, optional):
-                        return "PassRefPtr<" + helper.full_name_prefix + fixed_type_name.class_name + ">"
+                        return "PassRefPtr<TypeBuilder::" + context_domain_name + "::" + fixed_type_name.class_name + ">"
 
                     @staticmethod
-                    def get_setter_value_expression_pattern():
-                        return None
-
-                    @staticmethod
                     def reduce_to_raw_type():
                         return RawTypes.Object
 
@@ -889,10 +844,6 @@
                         return cls.reduce_to_raw_type().get_c_param_type(ParamType.EVENT, optional).get_text()
 
                     @staticmethod
-                    def get_setter_value_expression_pattern():
-                        return None
-
-                    @staticmethod
                     def reduce_to_raw_type():
                         return RawTypes.Object
 
@@ -944,10 +895,6 @@
                 return cls.reduce_to_raw_type().get_c_param_type(ParamType.EVENT, optional).get_text()
 
             @staticmethod
-            def get_setter_value_expression_pattern():
-                return None
-
-            @staticmethod
             def reduce_to_raw_type():
                 return raw_type
 
@@ -1152,9 +1099,6 @@
 
 namespace TypeBuilder {
 ${forwards}
-
-const String& getEnumConstantValue(int code);
-
 ${typeBuilders}
 } // namespace TypeBuilder
 
@@ -1597,17 +1541,6 @@
 
 $methods
 
-namespace TypeBuilder {
-
-const String enum_constant_values[] = {
-$enumConstantValues};
-
-const String& getEnumConstantValue(int code) {
-    return enum_constant_values[0];
-}
-
-} // namespace TypeBuilder
-
 } // namespace WebCore
 
 #endif // ENABLE(INSPECTOR)
@@ -1635,59 +1568,6 @@
     else:
         return raw_type
 
-
-# Chooses method generate modes for a particular type. A particular setter
-# can be generated as one method with a simple parameter type,
-# as one method with a raw type name and commented annotation about expected
-# specialized type name or as overloaded method when raw and specialized
-# parameter types require different behavior.
-class MethodGenerateModes:
-    @classmethod
-    def get_modes(cls, type_binding):
-        if type_binding.get_setter_value_expression_pattern():
-            # In raw and strict modes method code is actually different.
-            return [cls.StrictParameterMode, cls.RawParameterMode]
-        else:
-            # In raw and strict modes method code is the same.
-            # Only put strict parameter type in comments.
-            return [cls.CombinedMode]
-
-    class StrictParameterMode:
-        @staticmethod
-        def get_c_param_type_text(type_binding):
-            return type_binding.get_in_c_type_text(False)
-
-        @staticmethod
-        def get_setter_value_expression(param_type_binding, value_ref):
-            pattern = param_type_binding.get_setter_value_expression_pattern()
-            if pattern:
-                return pattern % value_ref
-            else:
-                return value_ref
-
-    class RawParameterMode:
-        @staticmethod
-        def get_c_param_type_text(type_binding):
-            return type_binding.reduce_to_raw_type().get_c_param_type(ParamType.TYPE_BUILDER_OUTPUT, False).get_text()
-
-        @staticmethod
-        def get_setter_value_expression(param_type_binding, value_ref):
-            return value_ref
-
-    class CombinedMode:
-        @staticmethod
-        def get_c_param_type_text(type_binding):
-            return get_annotated_type_text(type_binding.reduce_to_raw_type().get_c_param_type(ParamType.TYPE_BUILDER_OUTPUT, False).get_text(),
-                type_binding.get_in_c_type_text(False))
-
-        @staticmethod
-        def get_setter_value_expression(param_type_binding, value_ref):
-            pattern = param_type_binding.get_setter_value_expression_pattern()
-            if pattern:
-                return pattern % value_ref
-            else:
-                return value_ref
-
 class Generator:
     frontend_class_field_lines = []
     frontend_domain_class_lines = []
@@ -1810,7 +1690,7 @@
         backend_js_event_param_list = []
         ad_hoc_type_output = []
         frontend_method_declaration_lines.append(ad_hoc_type_output)
-        ad_hoc_type_writer = Writer(ad_hoc_type_output, "        ")
+        ad_hoc_type_writer = Writer(ad_hoc_type_output, "    ")
         if "parameters" in json_event:
             method_line_list.append("    RefPtr<InspectorObject> paramsObject = InspectorObject::create();\n")
             for json_parameter in json_event["parameters"]:
@@ -2072,8 +1952,7 @@
 
 frontend_cpp_file.write(Templates.frontend_cpp.substitute(None,
     constructorInit=join(Generator.frontend_constructor_init_list, ""),
-    methods=join(Generator.frontend_method_list, "\n"),
-    enumConstantValues=EnumConstants.get_enum_constant_code()))
+    methods=join(Generator.frontend_method_list, "\n")))
 
 backend_cpp_file.write(Templates.backend_cpp.substitute(None,
     methodNameDeclarations=join(Generator.backend_method_name_declaration_list, "\n"),
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to