| 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..fcfd3475530290f26bb0cf4d03a09bbd66ae5d54 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,9 @@
|
| {% from 'macros.tmpl' import license %}
|
| -{{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) #}
|
| +{% from 'macros.tmpl' import trie_length_switch %}
|
| +{% macro trie_return_statement(tag) %}
|
| return {{tag}}Tag.localName().impl();
|
| - {% endif %}
|
| -{% endfor %}
|
| -}
|
| -return 0;
|
| {% endmacro %}
|
| +{{license()}}
|
|
|
| #include "{{namespace}}ElementLookupTrie.h"
|
|
|
| @@ -30,15 +15,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(empty_case_return_value, length_tries, trie_return_statement, '0')}}
|
| }
|
|
|
| } // namespace blink
|
|
|