Index: Source/core/editing/FormatBlockCommand.cpp |
diff --git a/Source/core/editing/FormatBlockCommand.cpp b/Source/core/editing/FormatBlockCommand.cpp |
index 6b5337ccaaa3161832bb9d707d8b937825a7c83b..661dac3d9d2cd2493c1312d1a2782caf2433060e 100644 |
--- a/Source/core/editing/FormatBlockCommand.cpp |
+++ b/Source/core/editing/FormatBlockCommand.cpp |
@@ -115,34 +115,38 @@ Element* FormatBlockCommand::elementForFormatBlockCommand(Range* range) |
return commonAncestor->isElementNode() ? toElement(commonAncestor) : 0; |
} |
+// FIXME: This function doesn't work properly for XHTML documents that use a non-standard prefix. |
bool isElementForFormatBlock(const QualifiedName& tagName) |
{ |
- DEFINE_STATIC_LOCAL(HashSet<QualifiedName>, blockTags, ()); |
- if (blockTags.isEmpty()) { |
- blockTags.add(addressTag); |
- blockTags.add(articleTag); |
- blockTags.add(asideTag); |
- blockTags.add(blockquoteTag); |
- blockTags.add(ddTag); |
- blockTags.add(divTag); |
- blockTags.add(dlTag); |
- blockTags.add(dtTag); |
- blockTags.add(footerTag); |
- blockTags.add(h1Tag); |
- blockTags.add(h2Tag); |
- blockTags.add(h3Tag); |
- blockTags.add(h4Tag); |
- blockTags.add(h5Tag); |
- blockTags.add(h6Tag); |
- blockTags.add(headerTag); |
- blockTags.add(hgroupTag); |
- blockTags.add(mainTag); |
- blockTags.add(navTag); |
- blockTags.add(pTag); |
- blockTags.add(preTag); |
- blockTags.add(sectionTag); |
+ DEFINE_STATIC_LOCAL(QualifiedNameLiteralSet, blockTags, ()); |
+ if (!blockTags.isInitialized()) { |
+ static const QualifiedName* blockTagData[] = { |
+ &addressTag, |
+ &articleTag, |
+ &asideTag, |
+ &blockquoteTag, |
+ &ddTag, |
+ &divTag, |
+ &dlTag, |
+ &dtTag, |
+ &footerTag, |
+ &h1Tag, |
+ &h2Tag, |
+ &h3Tag, |
+ &h4Tag, |
+ &h5Tag, |
+ &h6Tag, |
+ &headerTag, |
+ &hgroupTag, |
+ &mainTag, |
+ &navTag, |
+ &pTag, |
+ &preTag, |
+ §ionTag, |
+ }; |
+ blockTags.init(blockTagData, WTF_ARRAY_LENGTH(blockTagData)); |
} |
- return blockTags.contains(tagName); |
+ return blockTags.contains(&tagName); |
} |
Node* enclosingBlockToSplitTreeTo(Node* startNode) |