| Index: Source/core/editing/markup.cpp
|
| diff --git a/Source/core/editing/markup.cpp b/Source/core/editing/markup.cpp
|
| index c256e91188405d72f9ab8d464a74648fae00aa19..53b195c1762bcf667a4a872059bf23b31a3e4504 100644
|
| --- a/Source/core/editing/markup.cpp
|
| +++ b/Source/core/editing/markup.cpp
|
| @@ -112,11 +112,11 @@ static void completeURLs(DocumentFragment& fragment, const String& baseURL)
|
| for (Element* element = ElementTraversal::firstWithin(fragment); element; element = ElementTraversal::next(*element, &fragment)) {
|
| if (!element->hasAttributes())
|
| continue;
|
| - unsigned length = element->attributeCount();
|
| - for (unsigned i = 0; i < length; i++) {
|
| - const Attribute& attribute = element->attributeItem(i);
|
| - if (element->isURLAttribute(attribute) && !attribute.value().isEmpty())
|
| - changes.append(AttributeChange(element, attribute.name(), KURL(parsedBaseURL, attribute.value()).string()));
|
| + AttributeIteratorAccessor attributes = element->attributesIterator();
|
| + AttributeConstIterator end = attributes.end();
|
| + for (AttributeConstIterator it = attributes.begin(); it != end; ++it) {
|
| + if (element->isURLAttribute(**it) && !it->value().isEmpty())
|
| + changes.append(AttributeChange(element, it->name(), KURL(parsedBaseURL, it->value()).string()));
|
| }
|
| }
|
|
|
| @@ -288,15 +288,18 @@ void StyledMarkupAccumulator::appendElement(StringBuilder& out, Element& element
|
| const bool documentIsHTML = element.document().isHTMLDocument();
|
| appendOpenTag(out, element, 0);
|
|
|
| - const unsigned length = element.hasAttributes() ? element.attributeCount() : 0;
|
| const bool shouldAnnotateOrForceInline = element.isHTMLElement() && (shouldAnnotate() || addDisplayInline);
|
| const bool shouldOverrideStyleAttr = shouldAnnotateOrForceInline || shouldApplyWrappingStyle(element);
|
| - for (unsigned i = 0; i < length; ++i) {
|
| - const Attribute& attribute = element.attributeItem(i);
|
| - // We'll handle the style attribute separately, below.
|
| - if (attribute.name() == styleAttr && shouldOverrideStyleAttr)
|
| - continue;
|
| - appendAttribute(out, element, attribute, 0);
|
| +
|
| + if (element.hasAttributes()) {
|
| + AttributeIteratorAccessor attributes = element.attributesIterator();
|
| + AttributeConstIterator end = attributes.end();
|
| + for (AttributeConstIterator it = attributes.begin(); it != end; ++it) {
|
| + // We'll handle the style attribute separately, below.
|
| + if (it->name() == styleAttr && shouldOverrideStyleAttr)
|
| + continue;
|
| + appendAttribute(out, element, **it, 0);
|
| + }
|
| }
|
|
|
| if (shouldOverrideStyleAttr) {
|
|
|