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

Unified Diff: third_party/WebKit/Source/build/scripts/templates/ElementLookupTrie.cpp.tmpl

Issue 1938343002: Generate a series of nested switch statements to parse CSSPrimitiveValue units. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Make all values appear in the .in file Created 4 years, 7 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/ElementLookupTrie.cpp.tmpl
diff --git a/third_party/WebKit/Source/build/scripts/templates/ElementLookupTrie.cpp.tmpl b/third_party/WebKit/Source/build/scripts/templates/ElementLookupTrie.cpp.tmpl
index d2e2acb8c403421e200d6a8c849ebee23bde8fbe..d03d1406d36f9d10604b80e5202c29cc63724c75 100644
--- a/third_party/WebKit/Source/build/scripts/templates/ElementLookupTrie.cpp.tmpl
+++ b/third_party/WebKit/Source/build/scripts/templates/ElementLookupTrie.cpp.tmpl
@@ -1,24 +1,7 @@
{% from 'macros.tmpl' import license %}
+{% from 'macros.tmpl' import trie_length_switch %}
+{% macro trie_return_statement(tag) %}{{tag}}Tag.localName().impl(){% endmacro %}
Timothy Loh 2016/05/12 07:03:14 can this line go immediately before the trie_lengt
meade_UTC10 2016/05/13 03:48:19 Done.
{{license()}}
-{% macro trie_switch(trie, index) %}
-{# FIXME: No need to switch if there's only a single item in the subtrie:
- can just have an if statement as we're currently doing for leaves. #}
-switch (data[{{index}}]) {
-{% for char, subtrie, tag, conditions in trie %}
-case '{{char}}':
- {% if subtrie %}{# Recurse on subtrie #}
- {{trie_switch(subtrie, index + 1) | indent}}
- {% elif conditions %}{# Check suffix #}
- if ({{conditions | join(' && ')}})
- return {{tag}}Tag.localName().impl();
- return 0;
- {% else %}{# Terminal node (no suffix) #}
- return {{tag}}Tag.localName().impl();
- {% endif %}
-{% endfor %}
-}
-return 0;
-{% endmacro %}
#include "{{namespace}}ElementLookupTrie.h"
@@ -30,15 +13,9 @@ using namespace {{namespace}}Names;
StringImpl* lookup{{namespace}}Tag(const UChar* data, unsigned length)
{
- ASSERT(data);
- ASSERT(length);
- switch (length) {
- {% for length, trie in length_tries %}
- case {{length}}:
- {{trie_switch(trie, 0) | indent(8)}}
- {% endfor %}
- }
- return 0;
+ DCHECK(data);
+ DCHECK(length);
+ {{ trie_length_switch(none, length_tries, trie_return_statement, '0') | indent(4) }}
Timothy Loh 2016/05/12 07:03:14 0 -> nullptr
meade_UTC10 2016/05/13 03:48:19 Done.
}
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698