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

Unified Diff: third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl

Issue 2693933003: Move field-dependent code in ComputedStyleBase to Jinja macros. (Closed)
Patch Set: Rebase Created 3 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
diff --git a/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl b/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
index cb055de90f1d00f40c786532f69a0343d83fb5af..34c45b7989507815c90fae9a280cce44ab101fe4 100644
--- a/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
+++ b/third_party/WebKit/Source/build/scripts/templates/ComputedStyleBase.h.tmpl
@@ -10,11 +10,13 @@
#include "{{path}}"
{% endfor %}
-{# Returns the default value for the field, converted to fit in the storage container. #}
-{% macro default_value(field) -%}
-{# We only support enum fields for now. #}
-static_cast<unsigned>({{field.default_value}})
-{%- endmacro %}
+{# Each field template has macros that we can call to generate specific
+ aspects of the field (e.g. getters, setters).
+#}
+{% import 'fields/keyword.tmpl' as keyword %}
+{% import 'fields/flag.tmpl' as flag %}
+{% import 'fields/monotonic_flag.tmpl' as monotonic_flag %}
+{% set field_templates = { 'keyword': keyword, 'flag': flag, 'monotonic_flag': monotonic_flag } %}
namespace blink {
@@ -24,7 +26,7 @@ class CORE_EXPORT ComputedStyleBase {
public:
ALWAYS_INLINE ComputedStyleBase() :
{% for field in fields %}
- {{field.name}}({{default_value(field)}}){{print_if(not loop.last, ',')}}
+ {{field.name}}(static_cast<unsigned>({{field.default_value}})){{print_if(not loop.last, ',')}}
{% endfor %}
{}
~ComputedStyleBase() {}
@@ -87,24 +89,7 @@ class CORE_EXPORT ComputedStyleBase {
{% for field in fields %}
// {{field.property_name}}
- inline static {{field.type_name}} {{field.initial_method_name}}() {
- return {{field.default_value}};
- }
- {{field.type_name}} {{field.getter_method_name}}() const {
- return static_cast<{{field.type_name}}>({{field.name}});
- }
- {% if field.is_nonproperty %}
- void {{field.setter_method_name}}() {
- {{field.name}} = static_cast<unsigned>(true);
- }
- {% else %}
- void {{field.setter_method_name}}({{field.type_name}} v) {
- {{field.name}} = static_cast<unsigned>(v);
- }
- {% endif %}
- inline void {{field.resetter_method_name}}() {
- {{field.name}} = {{default_value(field)}};
- }
+ {{field_templates[field.field_template].decl_methods(field)|indent(2)}}
{% endfor %}
protected:

Powered by Google App Engine
This is Rietveld 408576698