Index: Source/core/html/parser/HTMLTreeBuilder.cpp |
diff --git a/Source/core/html/parser/HTMLTreeBuilder.cpp b/Source/core/html/parser/HTMLTreeBuilder.cpp |
index 4caa70c1562c17a8bbe5f2ed4290b75bdc9ad1ba..1e065659850f931e4734bfa9d786f2d333ea8870 100644 |
--- a/Source/core/html/parser/HTMLTreeBuilder.cpp |
+++ b/Source/core/html/parser/HTMLTreeBuilder.cpp |
@@ -546,8 +546,9 @@ void HTMLTreeBuilder::processCloseWhenNestedTag(AtomicHTMLToken* token) |
typedef HashMap<AtomicString, QualifiedName> PrefixedNameToQualifiedNameMap; |
-static void mapLoweredLocalNameToName(PrefixedNameToQualifiedNameMap* map, const QualifiedName* const* names, size_t length) |
+static void mapLoweredLocalNameToName(PrefixedNameToQualifiedNameMap* map, const Vector<const QualifiedName*>& names) |
{ |
+ size_t length = names.size(); |
for (size_t i = 0; i < length; ++i) { |
const QualifiedName& name = *names[i]; |
const AtomicString& localName = name.localName(); |
@@ -562,8 +563,9 @@ static void adjustSVGTagNameCase(AtomicHTMLToken* token) |
static PrefixedNameToQualifiedNameMap* caseMap = 0; |
if (!caseMap) { |
caseMap = new PrefixedNameToQualifiedNameMap; |
- const QualifiedName* const* svgTags = SVGNames::getSVGTags(); |
- mapLoweredLocalNameToName(caseMap, svgTags, SVGNames::SVGTagsCount); |
+ Vector<const QualifiedName*> svgTags; |
+ SVGNames::getSVGTags(svgTags); |
+ mapLoweredLocalNameToName(caseMap, svgTags); |
} |
const QualifiedName& casedName = caseMap->get(token->name()); |
@@ -572,14 +574,15 @@ static void adjustSVGTagNameCase(AtomicHTMLToken* token) |
token->setName(casedName.localName()); |
} |
-template<const QualifiedName* const* getAttrs(), unsigned length> |
+template<void getAttrs(Vector<const QualifiedName*>&)> |
static void adjustAttributes(AtomicHTMLToken* token) |
{ |
static PrefixedNameToQualifiedNameMap* caseMap = 0; |
if (!caseMap) { |
caseMap = new PrefixedNameToQualifiedNameMap; |
- const QualifiedName* const* attrs = getAttrs(); |
- mapLoweredLocalNameToName(caseMap, attrs, length); |
+ Vector<const QualifiedName*> attrs; |
+ getAttrs(attrs); |
+ mapLoweredLocalNameToName(caseMap, attrs); |
} |
for (unsigned i = 0; i < token->attributes().size(); ++i) { |
@@ -592,16 +595,17 @@ static void adjustAttributes(AtomicHTMLToken* token) |
static void adjustSVGAttributes(AtomicHTMLToken* token) |
{ |
- adjustAttributes<SVGNames::getSVGAttrs, SVGNames::SVGAttrsCount>(token); |
+ adjustAttributes<SVGNames::getSVGAttrs>(token); |
} |
static void adjustMathMLAttributes(AtomicHTMLToken* token) |
{ |
- adjustAttributes<MathMLNames::getMathMLAttrs, MathMLNames::MathMLAttrsCount>(token); |
+ adjustAttributes<MathMLNames::getMathMLAttrs>(token); |
} |
-static void addNamesWithPrefix(PrefixedNameToQualifiedNameMap* map, const AtomicString& prefix, const QualifiedName* const* names, size_t length) |
+static void addNamesWithPrefix(PrefixedNameToQualifiedNameMap* map, const AtomicString& prefix, const Vector<const QualifiedName*>& names) |
{ |
+ size_t length = names.size(); |
for (size_t i = 0; i < length; ++i) { |
const QualifiedName* name = names[i]; |
const AtomicString& localName = name->localName(); |
@@ -617,11 +621,12 @@ static void adjustForeignAttributes(AtomicHTMLToken* token) |
if (!map) { |
map = new PrefixedNameToQualifiedNameMap; |
- const QualifiedName* const* attrs = XLinkNames::getXLinkAttrs(); |
- addNamesWithPrefix(map, xlinkAtom, attrs, XLinkNames::XLinkAttrsCount); |
+ Vector<const QualifiedName*> attrs; |
+ XLinkNames::getXLinkAttrs(attrs); |
+ addNamesWithPrefix(map, xlinkAtom, attrs); |
- attrs = XMLNames::getXMLAttrs(); |
- addNamesWithPrefix(map, xmlAtom, attrs, XMLNames::XMLAttrsCount); |
+ XMLNames::getXMLAttrs(attrs); |
+ addNamesWithPrefix(map, xmlAtom, attrs); |
map->add(WTF::xmlnsAtom, XMLNSNames::xmlnsAttr); |
map->add("xmlns:xlink", QualifiedName(xmlnsAtom, xlinkAtom, XMLNSNames::xmlnsNamespaceURI)); |