Index: Source/core/html/parser/HTMLTreeBuilder.cpp |
diff --git a/Source/core/html/parser/HTMLTreeBuilder.cpp b/Source/core/html/parser/HTMLTreeBuilder.cpp |
index 0553f7384f9054e234ed2df991d0f728c1e81317..023cc44e277fbe20d31e9424139a401aa625f035 100644 |
--- a/Source/core/html/parser/HTMLTreeBuilder.cpp |
+++ b/Source/core/html/parser/HTMLTreeBuilder.cpp |
@@ -553,8 +553,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(); |
@@ -569,8 +570,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()); |
@@ -579,14 +581,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) { |
@@ -599,16 +602,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(); |
@@ -624,11 +628,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)); |