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..af90e6ab22314b8cc0ec38671a901347f1465dcb 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 %} |
-{{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 %} |
+{% from 'macros.tmpl' import trie_length_switch %} |
+// Copyright (c) 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
#include "{{namespace}}ElementLookupTrie.h" |
@@ -30,15 +13,11 @@ 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); |
+ {% macro trie_return_statement(tag) %}{{tag}}Tag.localName().impl(){% endmacro %} |
+ {{ trie_length_switch(length_tries, trie_return_statement, false) | indent(4) }} |
+ return nullptr; |
} |
} // namespace blink |