OLD | NEW |
1 {% from 'macros.tmpl' import license %} | 1 {% from 'macros.tmpl' import license %} |
2 {{license()}} | 2 {{license()}} |
3 | 3 |
4 #include "core/ComputedStyleBase.h" | 4 #include "core/ComputedStyleBase.h" |
5 #include "wtf/SizeAssertions.h" | 5 #include "wtf/SizeAssertions.h" |
6 | 6 |
7 namespace blink { | 7 namespace blink { |
8 | 8 |
9 struct SameSizeAsComputedStyleBase { | 9 struct SameSizeAsComputedStyleBase { |
10 unsigned m_bitfields[{{expected_total_field_bytes}}]; | 10 {% for type_name, fields_list in fields|rejectattr("size")|groupby('type_name'
) %} |
| 11 {{type_name}} m_{{type_name}}[{{fields_list|length}}]; |
| 12 {% endfor %} |
| 13 unsigned m_bitfields[{{expected_bitfield_bytes}}]; |
11 }; | 14 }; |
12 // If this fails, the packing algorithm in make_computed_style_base.py has | 15 // If this fails, the packing algorithm in make_computed_style_base.py has |
13 // failed to produce the optimal packed size. To fix, update the algorithm to | 16 // failed to produce the optimal packed size. To fix, update the algorithm to |
14 // ensure that the buckets are placed so that each takes up at most 1 word. | 17 // ensure that the buckets are placed so that each takes up at most 1 word. |
15 ASSERT_SIZE(ComputedStyleBase, SameSizeAsComputedStyleBase); | 18 ASSERT_SIZE(ComputedStyleBase, SameSizeAsComputedStyleBase); |
16 | 19 |
17 void ComputedStyleBase::inheritFrom(const ComputedStyleBase& inheritParent, | 20 void ComputedStyleBase::inheritFrom(const ComputedStyleBase& inheritParent, |
18 IsAtShadowBoundary isAtShadowBoundary) { | 21 IsAtShadowBoundary isAtShadowBoundary) { |
19 {% for field in fields if field.is_property and field.is_inherited %} | 22 {% for field in fields if field.is_property and field.is_inherited %} |
20 {{field.name}} = inheritParent.{{field.name}}; | 23 {{field.name}} = inheritParent.{{field.name}}; |
21 {% endfor %} | 24 {% endfor %} |
22 } | 25 } |
23 | 26 |
24 void ComputedStyleBase::copyNonInheritedFromCached( | 27 void ComputedStyleBase::copyNonInheritedFromCached( |
25 const ComputedStyleBase& other) { | 28 const ComputedStyleBase& other) { |
26 {% for field in fields if (field.is_property and not field.is_inherited) or fi
eld.is_inherited_flag %} | 29 {% for field in fields if (field.is_property and not field.is_inherited) or fi
eld.is_inherited_flag %} |
27 {{field.name}} = other.{{field.name}}; | 30 {{field.name}} = other.{{field.name}}; |
28 {% endfor %} | 31 {% endfor %} |
29 } | 32 } |
30 | 33 |
31 void ComputedStyleBase::propagateIndependentInheritedProperties( | 34 void ComputedStyleBase::propagateIndependentInheritedProperties( |
32 const ComputedStyleBase& parentStyle) { | 35 const ComputedStyleBase& parentStyle) { |
33 {% for field in fields if field.is_property and field.is_independent %} | 36 {% for field in fields if field.is_property and field.is_independent %} |
34 if ({{field.is_inherited_method_name}}()) | 37 if ({{field.is_inherited_method_name}}()) |
35 {{field.setter_method_name}}(parentStyle.{{field.getter_method_name}}()); | 38 {{field.setter_method_name}}(parentStyle.{{field.getter_method_name}}()); |
36 {% endfor %} | 39 {% endfor %} |
37 } | 40 } |
38 | 41 |
39 } // namespace blink | 42 } // namespace blink |
OLD | NEW |