Commit 58101af6 authored by Minh-Duc Nguyen's avatar Minh-Duc Nguyen Committed by Commit Bot

Reverse conversion optimization in CSSValueIDMappingsGenerated.h

This is an extension for CL https://chromium-review.googlesource.com/c/564903/.
In this patch,
we also replace the switchcase conversion code from CSS enum
to KeywordValue enum.
Gen diff: https://gist.github.com/nguyen-minh-duc/97f5a4942b006690bdc0f442f11dff12/revisions

https: //chromium-review.googlesource.com/c/564903/
Bug: 744203
Change-Id: I11cc3467aaa4911ff948a570d3d076e59114750e
Reviewed-on: https://chromium-review.googlesource.com/572884
Commit-Queue: Minh-Duc Nguyen <nmduc@google.com>
Reviewed-by: default avatarmeade_UTC10 <meade@chromium.org>
Reviewed-by: default avatarDarren Shen <shend@chromium.org>
Reviewed-by: default avatarnainar <nainar@chromium.org>
Cr-Commit-Position: refs/heads/master@{#488125}
parent 52c142c6
...@@ -65,25 +65,36 @@ inline {{enum_name}} cssValueIDToPlatformEnumGenerated(CSSValueID v) { ...@@ -65,25 +65,36 @@ inline {{enum_name}} cssValueIDToPlatformEnumGenerated(CSSValueID v) {
{% endif %} {% endif %}
{% endfor %} {% endfor %}
default: default:
DCHECK(v >= {{mapping.start_segment[2]}} && v <= {{mapping.end_segment[2]}}) ; DCHECK_GE(v, {{mapping.start_segment[2]}});
DCHECK_LE(v, {{mapping.end_segment[2]}});
return static_cast<{{enum_name}}>(v - {{mapping.start_segment[2]}} + static_cast<int>({{enum_name}}::{{mapping.start_segment[0]}})); return static_cast<{{enum_name}}>(v - {{mapping.start_segment[2]}} + static_cast<int>({{enum_name}}::{{mapping.start_segment[0]}}));
} }
{% else %} {% else %}
DCHECK(v >= {{mapping.start_segment[2]}} && v <= {{mapping.end_segment[2]}}) ; DCHECK_GE(v, {{mapping.start_segment[2]}});
DCHECK_LE(v, {{mapping.end_segment[2]}});
return static_cast<{{enum_name}}>(v - {{mapping.start_segment[2]}} + static_cast<int>({{enum_name}}::{{mapping.start_segment[0]}})); return static_cast<{{enum_name}}>(v - {{mapping.start_segment[2]}} + static_cast<int>({{enum_name}}::{{mapping.start_segment[0]}}));
{% endif %} {% endif %}
} }
inline CSSValueID platformEnumToCSSValueIDGenerated({{enum_name}} v) { inline CSSValueID platformEnumToCSSValueIDGenerated({{enum_name}} v) {
{% if mapping['mapping'] | length > mapping.longest_segment_length %}
switch (v) { switch (v) {
{% for cs_value, cs_num, css_value, css_num in mapping['mapping']: %} {% for cs_value, cs_num, css_value, css_num in mapping['mapping']: %}
{% if cs_num < mapping.start_segment[1] or cs_num > mapping.end_segment[1] %}
case {{enum_name}}::{{cs_value}}: case {{enum_name}}::{{cs_value}}:
return {{css_value}}; return {{css_value}};
{% endif %}
{% endfor %} {% endfor %}
default: default:
NOTREACHED(); DCHECK_GE(v, {{enum_name}}::{{mapping.start_segment[0]}});
return CSSValueNone; DCHECK_LE(v, {{enum_name}}::{{mapping.end_segment[0]}});
return static_cast<CSSValueID>(static_cast<int>(v) - static_cast<int>({{enum_name}}::{{mapping.start_segment[0]}}) + static_cast<int>({{mapping.start_segment[2]}}));
} }
{% else %}
DCHECK_GE(v, {{enum_name}}::{{mapping.start_segment[0]}});
DCHECK_LE(v, {{enum_name}}::{{mapping.end_segment[0]}});
return static_cast<CSSValueID>(static_cast<int>(v) - static_cast<int>({{enum_name}}::{{mapping.start_segment[0]}}) + static_cast<int>({{mapping.start_segment[2]}}));
{% endif %}
} }
{% endif %} {% endif %}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment