Title: [198373] trunk/Source/_javascript_Core
- Revision
- 198373
- Author
- [email protected]
- Date
- 2016-03-17 18:43:06 -0700 (Thu, 17 Mar 2016)
Log Message
Web Inspector: protocol generator shouldn't generate enums for parameters with non-anonymous enum types
https://bugs.webkit.org/show_bug.cgi?id=155610
<rdar://problem/25229878>
Reviewed by Joseph Pecoraro.
If a command parameter has an anonymous enum type, the backend dispatcher generator
makes a C++ enum for the parameter. However, if the parameter references a named enum
type specified in a domain's 'type' section, then there's no need to generate an enum.
* inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:
(CppBackendDispatcherHeaderGenerator._generate_handler_declaration_for_command):
Add a missing check for the is_anonymous flag. Type references to named enums are resolved
to the underlying aliased EnumType instead of an AliasedType, so we have to check the flag.
Rebaseline tests.
* inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
* inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
Modified Paths
Diff
Modified: trunk/Source/_javascript_Core/ChangeLog (198372 => 198373)
--- trunk/Source/_javascript_Core/ChangeLog 2016-03-18 01:26:39 UTC (rev 198372)
+++ trunk/Source/_javascript_Core/ChangeLog 2016-03-18 01:43:06 UTC (rev 198373)
@@ -1,3 +1,25 @@
+2016-03-17 Brian Burg <[email protected]>
+
+ Web Inspector: protocol generator shouldn't generate enums for parameters with non-anonymous enum types
+ https://bugs.webkit.org/show_bug.cgi?id=155610
+ <rdar://problem/25229878>
+
+ Reviewed by Joseph Pecoraro.
+
+ If a command parameter has an anonymous enum type, the backend dispatcher generator
+ makes a C++ enum for the parameter. However, if the parameter references a named enum
+ type specified in a domain's 'type' section, then there's no need to generate an enum.
+
+ * inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py:
+ (CppBackendDispatcherHeaderGenerator._generate_handler_declaration_for_command):
+ Add a missing check for the is_anonymous flag. Type references to named enums are resolved
+ to the underlying aliased EnumType instead of an AliasedType, so we have to check the flag.
+
+ Rebaseline tests.
+
+ * inspector/scripts/tests/expected/commands-with-async-attribute.json-result:
+ * inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result:
+
2016-03-17 Filip Pizlo <[email protected]>
Replace all of the various non-working and non-compiling sampling profiler hacks with a single super hack
Modified: trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py (198372 => 198373)
--- trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py 2016-03-18 01:26:39 UTC (rev 198372)
+++ trunk/Source/_javascript_Core/inspector/scripts/codegen/generate_cpp_backend_dispatcher_header.py 2016-03-18 01:43:06 UTC (rev 198373)
@@ -134,7 +134,7 @@
parameters.append("%s %s" % (CppGenerator.cpp_type_for_unchecked_formal_in_parameter(_parameter), parameter_name))
- if isinstance(_parameter.type, EnumType) and _parameter.parameter_name not in used_enum_names:
+ if isinstance(_parameter.type, EnumType) and _parameter.type.is_anonymous and _parameter.parameter_name not in used_enum_names:
lines.append(self._generate_anonymous_enum_for_parameter(_parameter, command))
used_enum_names.add(_parameter.parameter_name)
@@ -144,7 +144,7 @@
parameter_name = 'opt_' + parameter_name
parameters.append("%s %s" % (CppGenerator.cpp_type_for_formal_out_parameter(_parameter), parameter_name))
- if isinstance(_parameter.type, EnumType) and _parameter.parameter_name not in used_enum_names:
+ if isinstance(_parameter.type, EnumType) and _parameter.type.is_anonymous and _parameter.parameter_name not in used_enum_names:
lines.append(self._generate_anonymous_enum_for_parameter(_parameter, command))
used_enum_names.add(_parameter.parameter_name)
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/expected/commands-with-async-attribute.json-result (198372 => 198373)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/expected/commands-with-async-attribute.json-result 2016-03-18 01:26:39 UTC (rev 198372)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/expected/commands-with-async-attribute.json-result 2016-03-18 01:43:06 UTC (rev 198373)
@@ -154,12 +154,6 @@
class DatabaseBackendDispatcherHandler {
public:
- // Named after parameter 'screenColor' while generating command/event executeSQLSyncOptionalReturnValues.
- enum class ScreenColor {
- Red = 0,
- Green = 1,
- Blue = 2,
- }; // enum class ScreenColor
// Named after parameter 'printColor' while generating command/event executeSQLSyncOptionalReturnValues.
enum class PrintColor {
Cyan = 3,
Modified: trunk/Source/_javascript_Core/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result (198372 => 198373)
--- trunk/Source/_javascript_Core/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result 2016-03-18 01:26:39 UTC (rev 198372)
+++ trunk/Source/_javascript_Core/inspector/scripts/tests/expected/commands-with-optional-call-return-parameters.json-result 2016-03-18 01:43:06 UTC (rev 198373)
@@ -149,12 +149,6 @@
class DatabaseBackendDispatcherHandler {
public:
- // Named after parameter 'screenColor' while generating command/event executeAllOptionalParameters.
- enum class ScreenColor {
- Red = 0,
- Green = 1,
- Blue = 2,
- }; // enum class ScreenColor
// Named after parameter 'printColor' while generating command/event executeAllOptionalParameters.
enum class PrintColor {
Cyan = 3,
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes