| Index: Source/core/dom/ElementData.cpp
|
| diff --git a/Source/core/dom/ElementData.cpp b/Source/core/dom/ElementData.cpp
|
| index 82a61d9d139d2287c8acf89cde9f9e7614f1f1d5..2e6c7c902592b996cb0d0f3b420eee45f6c28d9d 100644
|
| --- a/Source/core/dom/ElementData.cpp
|
| +++ b/Source/core/dom/ElementData.cpp
|
| @@ -70,7 +70,7 @@ ElementData::ElementData(unsigned arraySize)
|
|
|
| ElementData::ElementData(const ElementData& other, bool isUnique)
|
| : m_isUnique(isUnique)
|
| - , m_arraySize(isUnique ? 0 : other.attributeCount())
|
| + , m_arraySize(isUnique ? 0 : other.attributes().size())
|
| , m_presentationAttributeStyleIsDirty(other.m_presentationAttributeStyleIsDirty)
|
| , m_styleAttributeIsDirty(other.m_styleAttributeIsDirty)
|
| , m_animatedSVGAttributesAreDirty(other.m_animatedSVGAttributesAreDirty)
|
| @@ -107,42 +107,41 @@ PassRefPtrWillBeRawPtr<UniqueElementData> ElementData::makeUniqueCopy() const
|
|
|
| bool ElementData::isEquivalent(const ElementData* other) const
|
| {
|
| + AttributeCollection attributes = this->attributes();
|
| if (!other)
|
| - return !hasAttributes();
|
| + return attributes.isEmpty();
|
|
|
| - AttributeCollection attributes = this->attributes();
|
| - if (attributes.size() != other->attributeCount())
|
| + AttributeCollection otherAttributes = other->attributes();
|
| + if (attributes.size() != otherAttributes.size())
|
| return false;
|
|
|
| AttributeCollection::const_iterator end = attributes.end();
|
| for (AttributeCollection::const_iterator it = attributes.begin(); it != end; ++it) {
|
| - const Attribute* otherAttr = other->findAttributeByName(it->name());
|
| + const Attribute* otherAttr = otherAttributes.get(it->name());
|
| if (!otherAttr || it->value() != otherAttr->value())
|
| return false;
|
| }
|
| return true;
|
| }
|
|
|
| -size_t ElementData::findAttrNodeIndex(Attr* attr) const
|
| +size_t AttributeCollection::find(Attr* attr) const
|
| {
|
| // This relies on the fact that Attr's QualifiedName == the Attribute's name.
|
| - AttributeCollection attributes = this->attributes();
|
| - AttributeCollection::const_iterator end = attributes.end();
|
| + const_iterator end = this->end();
|
| unsigned index = 0;
|
| - for (AttributeCollection::const_iterator it = attributes.begin(); it != end; ++it, ++index) {
|
| + for (const_iterator it = begin(); it != end; ++it, ++index) {
|
| if (it->name() == attr->qualifiedName())
|
| return index;
|
| }
|
| return kNotFound;
|
| }
|
|
|
| -size_t ElementData::findAttributeIndexByNameSlowCase(const AtomicString& name, bool shouldIgnoreAttributeCase) const
|
| +size_t AttributeCollection::findSlowCase(const AtomicString& name, bool shouldIgnoreAttributeCase) const
|
| {
|
| // Continue to checking case-insensitively and/or full namespaced names if necessary:
|
| - AttributeCollection attributes = this->attributes();
|
| - AttributeCollection::const_iterator end = attributes.end();
|
| + const_iterator end = this->end();
|
| unsigned index = 0;
|
| - for (AttributeCollection::const_iterator it = attributes.begin(); it != end; ++it, ++index) {
|
| + for (const_iterator it = begin(); it != end; ++it, ++index) {
|
| // FIXME: Why check the prefix? Namespace is all that should matter
|
| // and all HTML/SVG attributes have a null namespace!
|
| if (!it->name().hasPrefix()) {
|
| @@ -227,7 +226,7 @@ UniqueElementData::UniqueElementData(const ShareableElementData& other)
|
| ASSERT(!other.m_inlineStyle || !other.m_inlineStyle->isMutable());
|
| m_inlineStyle = other.m_inlineStyle;
|
|
|
| - unsigned length = other.attributeCount();
|
| + unsigned length = other.attributes().size();
|
| m_attributeVector.reserveCapacity(length);
|
| for (unsigned i = 0; i < length; ++i)
|
| m_attributeVector.uncheckedAppend(other.m_attributeArray[i]);
|
|
|