2009-03-30 Darin Adler <darin@apple.com>
authordarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 30 Mar 2009 17:22:35 +0000 (17:22 +0000)
committerdarin@apple.com <darin@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 30 Mar 2009 17:22:35 +0000 (17:22 +0000)
        Reviewed by Adam Roben.

        Bug 24937: NamedNodeMap and NamedAttrMap should not be separate classes
        https://bugs.webkit.org/show_bug.cgi?id=24937

        Also should fix the Windows COM bindings build.

        * bindings/scripts/CodeGeneratorJS.pm: Removed special case for NamedNodeMap.
        * bindings/scripts/CodeGeneratorObjC.pm: Ditto.

        * dom/NamedAttrMap.h: Renamed class from NamedAttrMap to
        NamedNodeMap and removed NamedNodeMap base class. Made the NamedNodeMap
        functions all public and non-virtual. Removed virtualLength.

        * dom/NamedNodeMap.h: Replaced file with just an include
        of NamedAttrMap.h. As a follow up we will rename the NamedAttrMap
        files and remove this file.

        * bindings/js/JSNamedNodesCollection.cpp: Renamed from NamedAttrMap to NamedNodeMap.
        * dom/Attr.h: Ditto.
        * dom/Attribute.h: Ditto.
        * dom/Document.cpp:
        (WebCore::Document::importNode): Ditto.
        * dom/Element.cpp:
        (WebCore::Element::attributes): Ditto.
        (WebCore::Element::setAttributeMap): Ditto.
        (WebCore::Element::createAttributeMap): Ditto.
        (WebCore::Element::insertedIntoDocument): Ditto.
        (WebCore::Element::removedFromDocument): Ditto.
        (WebCore::Element::openTagStartToString): Ditto.
        (WebCore::Element::removeAttributeNode): Ditto.
        (WebCore::Element::getAttributeNode): Ditto.
        (WebCore::Element::getAttributeNodeNS): Ditto.
        (WebCore::Element::hasAttribute): Ditto.
        (WebCore::Element::hasAttributeNS): Ditto.
        (WebCore::Element::normalizeAttributes): Ditto.
        * dom/Element.h: Ditto.
        * dom/NamedAttrMap.cpp:
        (WebCore::NamedNodeMap::detachAttributesFromElement): Ditto.
        (WebCore::NamedNodeMap::~NamedNodeMap): Ditto.
        (WebCore::NamedNodeMap::isMappedAttributeMap): Ditto.
        (WebCore::NamedNodeMap::getNamedItem): Ditto.
        (WebCore::NamedNodeMap::getNamedItemNS): Ditto.
        (WebCore::NamedNodeMap::removeNamedItem): Ditto.
        (WebCore::NamedNodeMap::removeNamedItemNS): Ditto.
        (WebCore::NamedNodeMap::setNamedItem): Ditto.
        (WebCore::NamedNodeMap::item): Ditto.
        (WebCore::NamedNodeMap::getAttributeItem): Ditto.
        (WebCore::NamedNodeMap::clearAttributes): Ditto.
        (WebCore::NamedNodeMap::detachFromElement): Ditto.
        (WebCore::NamedNodeMap::setAttributes): Ditto.
        (WebCore::NamedNodeMap::addAttribute): Ditto.
        (WebCore::NamedNodeMap::removeAttribute): Ditto.
        (WebCore::NamedNodeMap::mapsEquivalent): Ditto.
        * dom/NamedMappedAttrMap.cpp:
        (WebCore::NamedMappedAttrMap::clearAttributes): Ditto.
        * dom/NamedMappedAttrMap.h:
        (WebCore::NamedMappedAttrMap::NamedMappedAttrMap): Ditto.
        * dom/Node.cpp:
        (WebCore::Node::dumpStatistics): Ditto.
        (WebCore::Node::isEqualNode): Ditto.
        (WebCore::Node::isDefaultNamespace): Ditto.
        (WebCore::Node::lookupNamespaceURI): Ditto.
        (WebCore::Node::lookupNamespacePrefix): Ditto.
        (WebCore::Node::compareDocumentPosition): Ditto.
        * dom/Node.h: Ditto.
        * dom/XMLTokenizerLibxml2.cpp:
        (WebCore::XMLTokenizer::XMLTokenizer): Ditto.
        * editing/ApplyStyleCommand.cpp:
        (WebCore::isSpanWithoutAttributesOrUnstyleStyleSpan): Ditto.
        (WebCore::isEmptyFontTag): Ditto.
        (WebCore::areIdenticalElements): Ditto.
        * editing/markup.cpp:
        (WebCore::appendStartMarkup): Ditto.
        (WebCore::completeURLs): Ditto.
        * html/HTMLParser.cpp:
        (WebCore::HTMLParser::handleError): Ditto.
        * rendering/RenderPartObject.cpp:
        (WebCore::RenderPartObject::updateWidget): Ditto.
        * svg/SVGAnimatedProperty.h:
        (WebCore::synchronizeProperty): Ditto.
        * xml/XPathFunctions.cpp:
        (WebCore::XPath::FunLang::evaluate): Ditto.
        * xml/XPathStep.cpp:
        (WebCore::XPath::Step::nodesInAxis): Ditto.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@42107 268f45cc-cd09-0410-ab3c-d52691b4dbfc

24 files changed:
WebCore/ChangeLog
WebCore/bindings/js/JSNamedNodesCollection.cpp
WebCore/bindings/scripts/CodeGeneratorJS.pm
WebCore/bindings/scripts/CodeGeneratorObjC.pm
WebCore/dom/Attr.h
WebCore/dom/Attribute.h
WebCore/dom/Document.cpp
WebCore/dom/Element.cpp
WebCore/dom/Element.h
WebCore/dom/NamedAttrMap.cpp
WebCore/dom/NamedAttrMap.h
WebCore/dom/NamedMappedAttrMap.cpp
WebCore/dom/NamedMappedAttrMap.h
WebCore/dom/NamedNodeMap.h
WebCore/dom/Node.cpp
WebCore/dom/Node.h
WebCore/dom/XMLTokenizerLibxml2.cpp
WebCore/editing/ApplyStyleCommand.cpp
WebCore/editing/markup.cpp
WebCore/html/HTMLParser.cpp
WebCore/rendering/RenderPartObject.cpp
WebCore/svg/SVGAnimatedProperty.h
WebCore/xml/XPathFunctions.cpp
WebCore/xml/XPathStep.cpp

index e00c0e6..84ad263 100644 (file)
@@ -1,3 +1,91 @@
+2009-03-30  Darin Adler  <darin@apple.com>
+
+        Reviewed by Adam Roben.
+
+        Bug 24937: NamedNodeMap and NamedAttrMap should not be separate classes
+        https://bugs.webkit.org/show_bug.cgi?id=24937
+
+        Also should fix the Windows COM bindings build.
+
+        * bindings/scripts/CodeGeneratorJS.pm: Removed special case for NamedNodeMap.
+        * bindings/scripts/CodeGeneratorObjC.pm: Ditto.
+
+        * dom/NamedAttrMap.h: Renamed class from NamedAttrMap to
+        NamedNodeMap and removed NamedNodeMap base class. Made the NamedNodeMap
+        functions all public and non-virtual. Removed virtualLength.
+
+        * dom/NamedNodeMap.h: Replaced file with just an include
+        of NamedAttrMap.h. As a follow up we will rename the NamedAttrMap
+        files and remove this file.
+
+        * bindings/js/JSNamedNodesCollection.cpp: Renamed from NamedAttrMap to NamedNodeMap.
+        * dom/Attr.h: Ditto.
+        * dom/Attribute.h: Ditto.
+        * dom/Document.cpp:
+        (WebCore::Document::importNode): Ditto.
+        * dom/Element.cpp:
+        (WebCore::Element::attributes): Ditto.
+        (WebCore::Element::setAttributeMap): Ditto.
+        (WebCore::Element::createAttributeMap): Ditto.
+        (WebCore::Element::insertedIntoDocument): Ditto.
+        (WebCore::Element::removedFromDocument): Ditto.
+        (WebCore::Element::openTagStartToString): Ditto.
+        (WebCore::Element::removeAttributeNode): Ditto.
+        (WebCore::Element::getAttributeNode): Ditto.
+        (WebCore::Element::getAttributeNodeNS): Ditto.
+        (WebCore::Element::hasAttribute): Ditto.
+        (WebCore::Element::hasAttributeNS): Ditto.
+        (WebCore::Element::normalizeAttributes): Ditto.
+        * dom/Element.h: Ditto.
+        * dom/NamedAttrMap.cpp:
+        (WebCore::NamedNodeMap::detachAttributesFromElement): Ditto.
+        (WebCore::NamedNodeMap::~NamedNodeMap): Ditto.
+        (WebCore::NamedNodeMap::isMappedAttributeMap): Ditto.
+        (WebCore::NamedNodeMap::getNamedItem): Ditto.
+        (WebCore::NamedNodeMap::getNamedItemNS): Ditto.
+        (WebCore::NamedNodeMap::removeNamedItem): Ditto.
+        (WebCore::NamedNodeMap::removeNamedItemNS): Ditto.
+        (WebCore::NamedNodeMap::setNamedItem): Ditto.
+        (WebCore::NamedNodeMap::item): Ditto.
+        (WebCore::NamedNodeMap::getAttributeItem): Ditto.
+        (WebCore::NamedNodeMap::clearAttributes): Ditto.
+        (WebCore::NamedNodeMap::detachFromElement): Ditto.
+        (WebCore::NamedNodeMap::setAttributes): Ditto.
+        (WebCore::NamedNodeMap::addAttribute): Ditto.
+        (WebCore::NamedNodeMap::removeAttribute): Ditto.
+        (WebCore::NamedNodeMap::mapsEquivalent): Ditto.
+        * dom/NamedMappedAttrMap.cpp:
+        (WebCore::NamedMappedAttrMap::clearAttributes): Ditto.
+        * dom/NamedMappedAttrMap.h:
+        (WebCore::NamedMappedAttrMap::NamedMappedAttrMap): Ditto.
+        * dom/Node.cpp:
+        (WebCore::Node::dumpStatistics): Ditto.
+        (WebCore::Node::isEqualNode): Ditto.
+        (WebCore::Node::isDefaultNamespace): Ditto.
+        (WebCore::Node::lookupNamespaceURI): Ditto.
+        (WebCore::Node::lookupNamespacePrefix): Ditto.
+        (WebCore::Node::compareDocumentPosition): Ditto.
+        * dom/Node.h: Ditto.
+        * dom/XMLTokenizerLibxml2.cpp:
+        (WebCore::XMLTokenizer::XMLTokenizer): Ditto.
+        * editing/ApplyStyleCommand.cpp:
+        (WebCore::isSpanWithoutAttributesOrUnstyleStyleSpan): Ditto.
+        (WebCore::isEmptyFontTag): Ditto.
+        (WebCore::areIdenticalElements): Ditto.
+        * editing/markup.cpp:
+        (WebCore::appendStartMarkup): Ditto.
+        (WebCore::completeURLs): Ditto.
+        * html/HTMLParser.cpp:
+        (WebCore::HTMLParser::handleError): Ditto.
+        * rendering/RenderPartObject.cpp:
+        (WebCore::RenderPartObject::updateWidget): Ditto.
+        * svg/SVGAnimatedProperty.h:
+        (WebCore::synchronizeProperty): Ditto.
+        * xml/XPathFunctions.cpp:
+        (WebCore::XPath::FunLang::evaluate): Ditto.
+        * xml/XPathStep.cpp:
+        (WebCore::XPath::Step::nodesInAxis): Ditto.
+
 2009-03-30  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>
 
         Reviewed by Holger Freyther.
index 8068a1d..dac6dda 100644 (file)
@@ -29,7 +29,7 @@
 #include "AtomicString.h"
 #include "Element.h"
 #include "JSNode.h"
-#include "NamedAttrMap.h"
+#include "NamedNodeMap.h"
 
 namespace WebCore {
 
index 08ef971..1daebd9 100644 (file)
@@ -1687,10 +1687,6 @@ sub NativeToJSValue
         $implIncludes{"CSSMutableStyleDeclaration.h"} = 1;
     }
 
-    if ($type eq "NamedNodeMap") {
-        $implIncludes{"NamedAttrMap.h"} = 1;
-    }
-
     if ($type eq "NodeList") {
         $implIncludes{"NameNodeList.h"} = 1;
     }
index 5ec960e..bb335bb 100644 (file)
@@ -667,7 +667,6 @@ sub AddIncludesForType
 
     # FIXME: won't compile without these
     $implIncludes{"CSSMutableStyleDeclaration.h"} = 1 if $type eq "CSSStyleDeclaration";
-    $implIncludes{"NamedAttrMap.h"} = 1 if $type eq "NamedNodeMap";
     $implIncludes{"NameNodeList.h"} = 1 if $type eq "NodeList";
 
     # Default, include the same named file (the implementation) and the same name prefixed with "DOM". 
index 9525251..ed4dc07 100644 (file)
@@ -37,7 +37,7 @@ namespace WebCore {
 // destruction. however, this is not yet implemented.
 
 class Attr : public ContainerNode {
-    friend class NamedAttrMap;
+    friend class NamedNodeMap;
 public:
     Attr(Element*, Document*, PassRefPtr<Attribute>);
     ~Attr();
index 2b2863f..b06d120 100644 (file)
@@ -32,14 +32,14 @@ namespace WebCore {
 class Attr;
 class CSSStyleDeclaration;
 class Element;
-class NamedAttrMap;
+class NamedNodeMap;
 
 // This has no counterpart in DOM.
 // It is an internal representation of the node value of an Attr.
 // The actual Attr with its value as a Text child is allocated only if needed.
 class Attribute : public RefCounted<Attribute> {
     friend class Attr;
-    friend class NamedAttrMap;
+    friend class NamedNodeMap;
 public:
     static PassRefPtr<Attribute> create(const QualifiedName& name, const AtomicString& value)
     {
index 782dd36..ae8e082 100644 (file)
@@ -634,7 +634,7 @@ PassRefPtr<Node> Document::importNode(Node* importedNode, bool deep, ExceptionCo
             if (ec)
                 return 0;
 
-            NamedAttrMap* attrs = oldElement->attributes(true);
+            NamedNodeMap* attrs = oldElement->attributes(true);
             if (attrs) {
                 unsigned length = attrs->length();
                 for (unsigned i = 0; i < length; i++) {
index da5ad6c..9fae8e3 100644 (file)
@@ -40,7 +40,7 @@
 #include "FrameView.h"
 #include "HTMLElement.h"
 #include "HTMLNames.h"
-#include "NamedAttrMap.h"
+#include "NamedNodeMap.h"
 #include "NodeList.h"
 #include "NodeRenderStyle.h"
 #include "Page.h"
@@ -140,12 +140,12 @@ void Element::setBooleanAttribute(const QualifiedName& name, bool b)
 }
 
 // Virtual function, defined in base class.
-NamedAttrMap* Element::attributes() const
+NamedNodeMap* Element::attributes() const
 {
     return attributes(false);
 }
 
-NamedAttrMap* Element::attributes(bool readonly) const
+NamedNodeMap* Element::attributes(bool readonly) const
 {
     if (!m_isStyleAttributeValid)
         updateStyleAttribute();
@@ -566,7 +566,7 @@ void Element::attributeChanged(Attribute* attr, bool)
     }
 }
 
-void Element::setAttributeMap(PassRefPtr<NamedAttrMap> list)
+void Element::setAttributeMap(PassRefPtr<NamedNodeMap> list)
 {
     document()->incDOMTreeVersion();
 
@@ -644,7 +644,7 @@ KURL Element::baseURI() const
 
 void Element::createAttributeMap() const
 {
-    namedAttrMap = NamedAttrMap::create(const_cast<Element*>(this));
+    namedAttrMap = NamedNodeMap::create(const_cast<Element*>(this));
 }
 
 bool Element::isURLAttribute(Attribute*) const
@@ -677,7 +677,7 @@ void Element::insertedIntoDocument()
     ContainerNode::insertedIntoDocument();
 
     if (hasID()) {
-        if (NamedAttrMap* attrs = namedAttrMap.get()) {
+        if (NamedNodeMap* attrs = namedAttrMap.get()) {
             Attribute* idItem = attrs->getAttributeItem(idAttr);
             if (idItem && !idItem->isNull())
                 updateId(nullAtom, idItem->value());
@@ -688,7 +688,7 @@ void Element::insertedIntoDocument()
 void Element::removedFromDocument()
 {
     if (hasID()) {
-        if (NamedAttrMap* attrs = namedAttrMap.get()) {
+        if (NamedNodeMap* attrs = namedAttrMap.get()) {
             Attribute* idItem = attrs->getAttributeItem(idAttr);
             if (idItem && !idItem->isNull())
                 updateId(idItem->value(), nullAtom);
@@ -948,7 +948,7 @@ String Element::openTagStartToString() const
 {
     String result = "<" + nodeName();
 
-    NamedAttrMap *attrMap = attributes(true);
+    NamedNodeMap* attrMap = attributes(true);
 
     if (attrMap) {
         unsigned numAttrs = attrMap->length();
@@ -1048,7 +1048,7 @@ PassRefPtr<Attr> Element::removeAttributeNode(Attr* attr, ExceptionCode& ec)
         return 0;
     }
 
-    NamedAttrMap *attrs = attributes(true);
+    NamedNodeMap* attrs = attributes(true);
     if (!attrs)
         return 0;
 
@@ -1083,7 +1083,7 @@ void Element::removeAttributeNS(const String& namespaceURI, const String& localN
 
 PassRefPtr<Attr> Element::getAttributeNode(const String& name)
 {
-    NamedAttrMap* attrs = attributes(true);
+    NamedNodeMap* attrs = attributes(true);
     if (!attrs)
         return 0;
     String localName = shouldIgnoreAttributeCase(this) ? name.lower() : name;
@@ -1092,7 +1092,7 @@ PassRefPtr<Attr> Element::getAttributeNode(const String& name)
 
 PassRefPtr<Attr> Element::getAttributeNodeNS(const String& namespaceURI, const String& localName)
 {
-    NamedAttrMap* attrs = attributes(true);
+    NamedNodeMap* attrs = attributes(true);
     if (!attrs)
         return 0;
     return static_pointer_cast<Attr>(attrs->getNamedItem(QualifiedName(nullAtom, localName, namespaceURI)));
@@ -1100,7 +1100,7 @@ PassRefPtr<Attr> Element::getAttributeNodeNS(const String& namespaceURI, const S
 
 bool Element::hasAttribute(const String& name) const
 {
-    NamedAttrMap* attrs = attributes(true);
+    NamedNodeMap* attrs = attributes(true);
     if (!attrs)
         return false;
 
@@ -1112,7 +1112,7 @@ bool Element::hasAttribute(const String& name) const
 
 bool Element::hasAttributeNS(const String& namespaceURI, const String& localName) const
 {
-    NamedAttrMap* attrs = attributes(true);
+    NamedNodeMap* attrs = attributes(true);
     if (!attrs)
         return false;
     return attrs->getAttributeItem(QualifiedName(nullAtom, localName, namespaceURI));
@@ -1246,7 +1246,7 @@ void Element::cancelFocusAppearanceUpdate()
 void Element::normalizeAttributes()
 {
     // Normalize attributes.
-    NamedAttrMap* attrs = attributes(true);
+    NamedNodeMap* attrs = attributes(true);
     if (!attrs)
         return;
     unsigned numAttrs = attrs->length();
index c665882..3c3949f 100644 (file)
@@ -34,10 +34,10 @@ namespace WebCore {
 class Attr;
 class Attribute;
 class CSSStyleDeclaration;
-class ElementRareData;
-class IntSize;
 class ClientRect;
 class ClientRectList;
+class ElementRareData;
+class IntSize;
 
 class Element : public ContainerNode {
 public:
@@ -134,14 +134,14 @@ public:
     void setAttribute(const QualifiedName&, const AtomicString& value);
     void setBooleanAttribute(const QualifiedName& name, bool);
 
-    virtual NamedAttrMap* attributes() const;
-    NamedAttrMap* attributes(bool readonly) const;
+    virtual NamedNodeMap* attributes() const;
+    NamedNodeMap* attributes(bool readonly) const;
 
     // This method is called whenever an attribute is added, changed or removed.
     virtual void attributeChanged(Attribute*, bool preserveDecls = false);
 
     // not part of the DOM
-    void setAttributeMap(PassRefPtr<NamedAttrMap>);
+    void setAttributeMap(PassRefPtr<NamedNodeMap>);
 
     virtual void copyNonAttributeProperties(const Element* /*source*/) { }
 
@@ -230,7 +230,7 @@ protected:
     ElementRareData* rareData() const;
     ElementRareData* ensureRareData();
     
-    mutable RefPtr<NamedAttrMap> namedAttrMap;
+    mutable RefPtr<NamedNodeMap> namedAttrMap;
 };
     
 inline bool Node::hasTagName(const QualifiedName& name) const
@@ -243,7 +243,7 @@ inline bool Node::hasAttributes() const
     return isElementNode() && static_cast<const Element*>(this)->hasAttributes();
 }
 
-inline NamedAttrMap* Node::attributes() const
+inline NamedNodeMap* Node::attributes() const
 {
     return isElementNode() ? static_cast<const Element*>(this)->attributes() : 0;
 }
index 33c60d3..c776c6f 100644 (file)
@@ -23,7 +23,7 @@
  */
 
 #include "config.h"
-#include "NamedAttrMap.h"
+#include "NamedNodeMap.h"
 
 #include "Document.h"
 #include "Element.h"
@@ -39,7 +39,7 @@ static inline bool shouldIgnoreAttributeCase(const Element* e)
     return e && e->document()->isHTMLDocument() && e->isHTMLElement();
 }
 
-inline void NamedAttrMap::detachAttributesFromElement()
+inline void NamedNodeMap::detachAttributesFromElement()
 {
     size_t size = m_attributes.size();
     for (size_t i = 0; i < size; i++) {
@@ -48,17 +48,17 @@ inline void NamedAttrMap::detachAttributesFromElement()
     }
 }
 
-NamedAttrMap::~NamedAttrMap()
+NamedNodeMap::~NamedNodeMap()
 {
     detachAttributesFromElement();
 }
 
-bool NamedAttrMap::isMappedAttributeMap() const
+bool NamedNodeMap::isMappedAttributeMap() const
 {
     return false;
 }
 
-PassRefPtr<Node> NamedAttrMap::getNamedItem(const String& name) const
+PassRefPtr<Node> NamedNodeMap::getNamedItem(const String& name) const
 {
     Attribute* a = getAttributeItem(name, shouldIgnoreAttributeCase(m_element));
     if (!a)
@@ -67,12 +67,12 @@ PassRefPtr<Node> NamedAttrMap::getNamedItem(const String& name) const
     return a->createAttrIfNeeded(m_element);
 }
 
-PassRefPtr<Node> NamedAttrMap::getNamedItemNS(const String& namespaceURI, const String& localName) const
+PassRefPtr<Node> NamedNodeMap::getNamedItemNS(const String& namespaceURI, const String& localName) const
 {
     return getNamedItem(QualifiedName(nullAtom, localName, namespaceURI));
 }
 
-PassRefPtr<Node> NamedAttrMap::removeNamedItem(const String& name, ExceptionCode& ec)
+PassRefPtr<Node> NamedNodeMap::removeNamedItem(const String& name, ExceptionCode& ec)
 {
     Attribute* a = getAttributeItem(name, shouldIgnoreAttributeCase(m_element));
     if (!a) {
@@ -83,12 +83,12 @@ PassRefPtr<Node> NamedAttrMap::removeNamedItem(const String& name, ExceptionCode
     return removeNamedItem(a->name(), ec);
 }
 
-PassRefPtr<Node> NamedAttrMap::removeNamedItemNS(const String& namespaceURI, const String& localName, ExceptionCode& ec)
+PassRefPtr<Node> NamedNodeMap::removeNamedItemNS(const String& namespaceURI, const String& localName, ExceptionCode& ec)
 {
     return removeNamedItem(QualifiedName(nullAtom, localName, namespaceURI), ec);
 }
 
-PassRefPtr<Node> NamedAttrMap::getNamedItem(const QualifiedName& name) const
+PassRefPtr<Node> NamedNodeMap::getNamedItem(const QualifiedName& name) const
 {
     Attribute* a = getAttributeItem(name);
     if (!a)
@@ -97,7 +97,7 @@ PassRefPtr<Node> NamedAttrMap::getNamedItem(const QualifiedName& name) const
     return a->createAttrIfNeeded(m_element);
 }
 
-PassRefPtr<Node> NamedAttrMap::setNamedItem(Node* arg, ExceptionCode& ec)
+PassRefPtr<Node> NamedNodeMap::setNamedItem(Node* arg, ExceptionCode& ec)
 {
     if (!m_element || !arg) {
         ec = NOT_FOUND_ERR;
@@ -146,7 +146,7 @@ PassRefPtr<Node> NamedAttrMap::setNamedItem(Node* arg, ExceptionCode& ec)
 // The DOM2 spec doesn't say that removeAttribute[NS] throws NOT_FOUND_ERR
 // if the attribute is not found, but at this level we have to throw NOT_FOUND_ERR
 // because of removeNamedItem, removeNamedItemNS, and removeAttributeNode.
-PassRefPtr<Node> NamedAttrMap::removeNamedItem(const QualifiedName& name, ExceptionCode& ec)
+PassRefPtr<Node> NamedNodeMap::removeNamedItem(const QualifiedName& name, ExceptionCode& ec)
 {
     Attribute* a = getAttributeItem(name);
     if (!a) {
@@ -163,7 +163,7 @@ PassRefPtr<Node> NamedAttrMap::removeNamedItem(const QualifiedName& name, Except
     return r.release();
 }
 
-PassRefPtr<Node> NamedAttrMap::item (unsigned index) const
+PassRefPtr<Node> NamedNodeMap::item (unsigned index) const
 {
     if (index >= length())
         return 0;
@@ -173,7 +173,7 @@ PassRefPtr<Node> NamedAttrMap::item (unsigned index) const
 
 // We use a boolean parameter instead of calling shouldIgnoreAttributeCase so that the caller
 // can tune the behaviour (hasAttribute is case sensitive whereas getAttribute is not).
-Attribute* NamedAttrMap::getAttributeItem(const String& name, bool shouldIgnoreAttributeCase) const
+Attribute* NamedNodeMap::getAttributeItem(const String& name, bool shouldIgnoreAttributeCase) const
 {
     unsigned len = length();
     for (unsigned i = 0; i < len; ++i) {
@@ -187,7 +187,7 @@ Attribute* NamedAttrMap::getAttributeItem(const String& name, bool shouldIgnoreA
     return 0;
 }
 
-Attribute* NamedAttrMap::getAttributeItem(const QualifiedName& name) const
+Attribute* NamedNodeMap::getAttributeItem(const QualifiedName& name) const
 {
     unsigned len = length();
     for (unsigned i = 0; i < len; ++i) {
@@ -197,21 +197,21 @@ Attribute* NamedAttrMap::getAttributeItem(const QualifiedName& name) const
     return 0;
 }
 
-void NamedAttrMap::clearAttributes()
+void NamedNodeMap::clearAttributes()
 {
     detachAttributesFromElement();
     m_attributes.clear();
 }
 
-void NamedAttrMap::detachFromElement()
+void NamedNodeMap::detachFromElement()
 {
-    // we allow a NamedAttrMap w/o an element in case someone still has a reference
+    // we allow a NamedNodeMap w/o an element in case someone still has a reference
     // to if after the element gets deleted - but the map is now invalid
     m_element = 0;
     detachAttributesFromElement();
 }
 
-void NamedAttrMap::setAttributes(const NamedAttrMap& other)
+void NamedNodeMap::setAttributes(const NamedNodeMap& other)
 {
     // clone all attributes in the other map, but attach to our element
     if (!m_element)
@@ -233,13 +233,13 @@ void NamedAttrMap::setAttributes(const NamedAttrMap& other)
 
     // FIXME: This is wasteful.  The class list could be preserved on a copy, and we
     // wouldn't have to waste time reparsing the attribute.
-    // The derived class, HTMLNamedAttrMap, which manages a parsed class list for the CLASS attribute,
+    // The derived class, HTMLNamedNodeMap, which manages a parsed class list for the CLASS attribute,
     // will update its member variable when parse attribute is called.
     for (unsigned i = 0; i < newLength; i++)
         m_element->attributeChanged(m_attributes[i].get(), true);
 }
 
-void NamedAttrMap::addAttribute(PassRefPtr<Attribute> prpAttribute)
+void NamedNodeMap::addAttribute(PassRefPtr<Attribute> prpAttribute)
 {
     RefPtr<Attribute> attribute = prpAttribute;
     
@@ -261,7 +261,7 @@ void NamedAttrMap::addAttribute(PassRefPtr<Attribute> prpAttribute)
     }
 }
 
-void NamedAttrMap::removeAttribute(const QualifiedName& name)
+void NamedNodeMap::removeAttribute(const QualifiedName& name)
 {
     unsigned len = length();
     unsigned index = len + 1;
@@ -295,7 +295,7 @@ void NamedAttrMap::removeAttribute(const QualifiedName& name)
     }
 }
 
-bool NamedAttrMap::mapsEquivalent(const NamedAttrMap* otherMap) const
+bool NamedNodeMap::mapsEquivalent(const NamedNodeMap* otherMap) const
 {
     if (!otherMap)
         return false;
@@ -315,9 +315,4 @@ bool NamedAttrMap::mapsEquivalent(const NamedAttrMap* otherMap) const
     return true;
 }
 
-size_t NamedAttrMap::virtualLength() const
-{
-    return length();
-}
-
 }
index 61628e4..253516e 100644 (file)
@@ -26,8 +26,6 @@
 #define NamedAttrMap_h
 
 #include "Attribute.h"
-#include "NamedNodeMap.h"
-#include <wtf/Vector.h>
 
 #ifdef __OBJC__
 #define id id_AVOID_KEYWORD
 
 namespace WebCore {
 
-// the map of attributes of an element
-class NamedAttrMap : public NamedNodeMap {
+class Node;
+
+typedef int ExceptionCode;
+
+class NamedNodeMap : public RefCounted<NamedNodeMap> {
     friend class Element;
+
 protected:
-    NamedAttrMap(Element* element) : m_element(element) { }
+    NamedNodeMap(Element* element) : m_element(element) { }
+
 public:
-    static PassRefPtr<NamedAttrMap> create(Element* element) { return adoptRef(new NamedAttrMap(element)); }
+    static PassRefPtr<NamedNodeMap> create(Element* element) { return adoptRef(new NamedNodeMap(element)); }
 
-    virtual ~NamedAttrMap();
+    virtual ~NamedNodeMap();
 
-    void setAttributes(const NamedAttrMap&);
+    // Public DOM interface.
 
+    PassRefPtr<Node> getNamedItem(const String& name) const;
+    PassRefPtr<Node> removeNamedItem(const String& name, ExceptionCode&);
+
+    PassRefPtr<Node> getNamedItemNS(const String& namespaceURI, const String& localName) const;
+    PassRefPtr<Node> removeNamedItemNS(const String& namespaceURI, const String& localName, ExceptionCode&);
+
+    PassRefPtr<Node> getNamedItem(const QualifiedName& name) const;
+    PassRefPtr<Node> removeNamedItem(const QualifiedName& name, ExceptionCode&);
+    PassRefPtr<Node> setNamedItem(Node*, ExceptionCode&);
+    PassRefPtr<Node> setNamedItemNS(Node* node, ExceptionCode& ec) { return setNamedItem(node, ec); }
+
+    PassRefPtr<Node> item(unsigned index) const;
     size_t length() const { return m_attributes.size(); }
+
+    // Internal interface.
+
+    void setAttributes(const NamedNodeMap&);
+
     Attribute* attributeItem(unsigned index) const { return m_attributes[index].get(); }
     Attribute* getAttributeItem(const QualifiedName&) const;
 
     void shrinkToLength() { m_attributes.shrinkCapacity(length()); }
     void reserveInitialCapacity(unsigned capacity) { m_attributes.reserveInitialCapacity(capacity); }
 
-    // used during parsing: only inserts if not already there
-    // no error checking!
+    // Used during parsing: only inserts if not already there. No error checking!
     void insertAttribute(PassRefPtr<Attribute> newAttribute, bool allowDuplicates)
     {
         ASSERT(!m_element);
@@ -64,11 +83,11 @@ public:
     }
 
     virtual bool isMappedAttributeMap() const;
-    
+
     const AtomicString& id() const { return m_id; }
     void setID(const AtomicString& newId) { m_id = newId; }
 
-    bool mapsEquivalent(const NamedAttrMap* otherMap) const;
+    bool mapsEquivalent(const NamedNodeMap* otherMap) const;
 
     // These functions do no error checking.
     void addAttribute(PassRefPtr<Attribute>);
@@ -84,19 +103,6 @@ private:
     void detachFromElement();
     Attribute* getAttributeItem(const String& name, bool shouldIgnoreAttributeCase) const;
 
-    virtual PassRefPtr<Node> getNamedItem(const String& name) const;
-    virtual PassRefPtr<Node> removeNamedItem(const String& name, ExceptionCode&);
-
-    virtual PassRefPtr<Node> getNamedItemNS(const String& namespaceURI, const String& localName) const;
-    virtual PassRefPtr<Node> removeNamedItemNS(const String& namespaceURI, const String& localName, ExceptionCode&);
-
-    virtual PassRefPtr<Node> getNamedItem(const QualifiedName& name) const;
-    virtual PassRefPtr<Node> removeNamedItem(const QualifiedName& name, ExceptionCode&);
-    virtual PassRefPtr<Node> setNamedItem(Node*, ExceptionCode&);
-
-    virtual PassRefPtr<Node> item(unsigned index) const;
-    virtual size_t virtualLength() const;
-
     Element* m_element;
     Vector<RefPtr<Attribute> > m_attributes;
     AtomicString m_id;
index cff4997..08c05c8 100644 (file)
@@ -34,7 +34,7 @@ void NamedMappedAttrMap::clearAttributes()
 {
     m_classNames.clear();
     m_mappedAttributeCount = 0;
-    NamedAttrMap::clearAttributes();
+    NamedNodeMap::clearAttributes();
 }
 
 bool NamedMappedAttrMap::isMappedAttributeMap() const
index 9267f89..c5d04a0 100644 (file)
 
 #include "ClassNames.h"
 #include "MappedAttribute.h" // This header is not required for the NamedMappedAttrMap definition. Should remove it.
-#include "NamedAttrMap.h"
+#include "NamedNodeMap.h"
 
 namespace WebCore {
 
-class NamedMappedAttrMap : public NamedAttrMap {
+class NamedMappedAttrMap : public NamedNodeMap {
 public:
     static PassRefPtr<NamedMappedAttrMap> create(Element* element = 0) { return adoptRef(new NamedMappedAttrMap(element)); }
 
@@ -47,7 +47,7 @@ public:
     bool mapsEquivalent(const NamedMappedAttrMap*) const;
 
 private:
-    NamedMappedAttrMap(Element* element) : NamedAttrMap(element), m_mappedAttributeCount(0) { }
+    NamedMappedAttrMap(Element* element) : NamedNodeMap(element), m_mappedAttributeCount(0) { }
 
     virtual void clearAttributes();
     virtual bool isMappedAttributeMap() const;
index 08e6efb..37ef870 100644 (file)
@@ -1,67 +1 @@
-/*
- * This file is part of the DOM implementation for KDE.
- *
- * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
- *           (C) 1999 Antti Koivisto (koivisto@kde.org)
- *           (C) 2001 Dirk Mueller (mueller@kde.org)
- * Copyright (C) 2004, 2006 Apple Computer, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public License
- * along with this library; see the file COPYING.LIB.  If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- *
- */
-
-#ifndef NamedNodeMap_h
-#define NamedNodeMap_h
-
-#include <wtf/RefCounted.h>
-#include <wtf/PassRefPtr.h>
-
-namespace WebCore {
-
-class Node;
-class QualifiedName;
-class String;
-
-typedef int ExceptionCode;
-
-// Generic NamedNodeMap interface
-// Other classes implement this for more specific situations e.g. attributes of an element.
-class NamedNodeMap : public RefCounted<NamedNodeMap> {
-public:
-    virtual ~NamedNodeMap() { }
-
-    virtual PassRefPtr<Node> getNamedItem(const String& name) const = 0;
-    virtual PassRefPtr<Node> removeNamedItem(const String& name, ExceptionCode&) = 0;
-
-    virtual PassRefPtr<Node> getNamedItemNS(const String& namespaceURI, const String& localName) const = 0;
-    PassRefPtr<Node> setNamedItemNS(Node* arg, ExceptionCode& ec) { return setNamedItem(arg, ec); }
-    virtual PassRefPtr<Node> removeNamedItemNS(const String& namespaceURI, const String& localName, ExceptionCode&) = 0;
-
-    // DOM methods & attributes for NamedNodeMap
-    virtual PassRefPtr<Node> getNamedItem(const QualifiedName& attrName) const = 0;
-    virtual PassRefPtr<Node> removeNamedItem(const QualifiedName& attrName, ExceptionCode&) = 0;
-    virtual PassRefPtr<Node> setNamedItem(Node*, ExceptionCode&) = 0;
-
-    virtual PassRefPtr<Node> item(unsigned index) const = 0;
-    size_t length() const { return virtualLength(); }
-
-private:
-    virtual size_t virtualLength() const = 0;
-};
-
-} //namespace
-
-#endif
+#include "NamedAttrMap.h"
index 7f6e646..6028d9d 100644 (file)
@@ -54,7 +54,7 @@
 #include "MouseEvent.h"
 #include "MutationEvent.h"
 #include "NameNodeList.h"
-#include "NamedAttrMap.h"
+#include "NamedNodeMap.h"
 #include "NodeRareData.h"
 #include "Page.h"
 #include "PlatformMouseEvent.h"
@@ -152,7 +152,7 @@ void Node::dumpStatistics()
                     result.first->second++;
 
                 // AttributeMap stats
-                if (NamedAttrMap* attrMap = element->attributes(true)) {
+                if (NamedNodeMap* attrMap = element->attributes(true)) {
                     attributes += attrMap->length();
                     ++attrMaps;
                     if (attrMap->isMappedAttributeMap())
@@ -249,7 +249,7 @@ void Node::dumpStatistics()
     printf("  Number of MappedAttributes: %zu [%zu]\n", mappedAttributes, sizeof(MappedAttribute));
     printf("  Number of MappedAttributes with a StyleDeclaration: %zu\n", mappedAttributesWithStyleDecl);
     printf("  Number of Attributes with an Attr: %zu\n", attributesWithAttr);
-    printf("  Number of NamedAttrMaps: %zu\n", attrMaps);
+    printf("  Number of NamedNodeMaps: %zu\n", attrMaps);
     printf("  Number of NamedMappedAttrMap: %zu\n", mappedAttrMaps);
 #endif
 }
@@ -1613,8 +1613,8 @@ bool Node::isEqualNode(Node *other) const
     if (nodeValue() != other->nodeValue())
         return false;
     
-    NamedAttrMap *attrs = attributes();
-    NamedAttrMap *otherAttrs = other->attributes();
+    NamedNodeMap *attrs = attributes();
+    NamedNodeMap *otherAttrs = other->attributes();
     
     if (!attrs && otherAttrs)
         return false;
@@ -1655,7 +1655,7 @@ bool Node::isDefaultNamespace(const AtomicString &namespaceURI) const
                 return elem->namespaceURI() == namespaceURI;
 
             if (elem->hasAttributes()) {
-                NamedAttrMap *attrs = elem->attributes();
+                NamedNodeMap *attrs = elem->attributes();
                 
                 for (unsigned i = 0; i < attrs->length(); i++) {
                     Attribute *attr = attrs->attributeItem(i);
@@ -1741,7 +1741,7 @@ String Node::lookupNamespaceURI(const String &prefix) const
                 return elem->namespaceURI();
             
             if (elem->hasAttributes()) {
-                NamedAttrMap *attrs = elem->attributes();
+                NamedNodeMap *attrs = elem->attributes();
                 
                 for (unsigned i = 0; i < attrs->length(); i++) {
                     Attribute *attr = attrs->attributeItem(i);
@@ -1796,7 +1796,7 @@ String Node::lookupNamespacePrefix(const AtomicString &_namespaceURI, const Elem
         return prefix();
     
     if (hasAttributes()) {
-        NamedAttrMap *attrs = attributes();
+        NamedNodeMap *attrs = attributes();
         
         for (unsigned i = 0; i < attrs->length(); i++) {
             Attribute *attr = attrs->attributeItem(i);
@@ -1937,7 +1937,7 @@ unsigned short Node::compareDocumentPosition(Node* otherNode)
     if (attr1 && attr2 && start1 == start2 && start1) {
         // We are comparing two attributes on the same node.  Crawl our attribute map
         // and see which one we hit first.
-        NamedAttrMap* map = attr1->ownerElement()->attributes(true);
+        NamedNodeMap* map = attr1->ownerElement()->attributes(true);
         unsigned length = map->length();
         for (unsigned i = 0; i < length; ++i) {
             // If neither of the two determining nodes is a child node and nodeType is the same for both determining nodes, then an 
index da0dd1c..cd7f602 100644 (file)
@@ -49,7 +49,7 @@ class Frame;
 class IntRect;
 class KeyboardEvent;
 class NSResolver;
-class NamedAttrMap;
+class NamedNodeMap;
 class NodeList;
 class NodeRareData;
 class PlatformKeyboardEvent;
@@ -126,7 +126,7 @@ public:
     Node* firstChild() const { return isContainerNode() ? containerFirstChild() : 0; }
     Node* lastChild() const { return isContainerNode() ? containerLastChild() : 0; }
     bool hasAttributes() const;
-    NamedAttrMap* attributes() const;
+    NamedNodeMap* attributes() const;
 
     virtual KURL baseURI() const;
     
index 77a1afd..0e86876 100644 (file)
@@ -583,7 +583,7 @@ XMLTokenizer::XMLTokenizer(DocumentFragment* fragment, Element* parentElement)
         return;
     
     for (Element* element = elemStack.last(); !elemStack.isEmpty(); elemStack.removeLast()) {
-        if (NamedAttrMap* attrs = element->attributes()) {
+        if (NamedNodeMap* attrs = element->attributes()) {
             for (unsigned i = 0; i < attrs->length(); i++) {
                 Attribute* attr = attrs->attributeItem(i);
                 if (attr->localName() == "xmlns")
index d43cc81..e8ef925 100644 (file)
@@ -265,7 +265,7 @@ static bool isSpanWithoutAttributesOrUnstyleStyleSpan(const Node* node)
         return false;
 
     const HTMLElement* elem = static_cast<const HTMLElement*>(node);
-    NamedAttrMap* attributes = elem->attributes(true); // readonly
+    NamedNodeMap* attributes = elem->attributes(true); // readonly
     if (attributes->length() == 0)
         return true;
 
@@ -278,7 +278,7 @@ static bool isEmptyFontTag(const Node *node)
         return false;
 
     const Element *elem = static_cast<const Element *>(node);
-    NamedAttrMap *map = elem->attributes(true); // true for read-only
+    NamedNodeMap *map = elem->attributes(true); // true for read-only
     return (!map || map->length() == 1) && elem->getAttribute(classAttr) == styleSpanClassString();
 }
 
@@ -1357,8 +1357,8 @@ static bool areIdenticalElements(Node *first, Node *second)
     if (!firstElement->tagQName().matches(secondElement->tagQName()))
         return false;
 
-    NamedAttrMap *firstMap = firstElement->attributes();
-    NamedAttrMap *secondMap = secondElement->attributes();
+    NamedNodeMap *firstMap = firstElement->attributes();
+    NamedNodeMap *secondMap = secondElement->attributes();
 
     unsigned firstLength = firstMap->length();
 
index 48e20f5..3bc374b 100644 (file)
@@ -439,7 +439,7 @@ static void appendStartMarkup(Vector<UChar>& result, const Node *node, const Ran
             const Element* el = static_cast<const Element*>(node);
             bool convert = convertBlocksToInlines && isBlock(const_cast<Node*>(node));
             append(result, el->nodeNamePreservingCase());
-            NamedAttrMap *attrs = el->attributes();
+            NamedNodeMap *attrs = el->attributes();
             unsigned length = attrs->length();
             if (!documentIsHTML && namespaces && shouldAddNamespaceElem(el))
                 appendNamespace(result, el->prefix(), el->namespaceURI(), *namespaces);
@@ -642,7 +642,7 @@ static void completeURLs(Node* node, const String& baseURL)
     for (Node* n = node; n != end; n = n->traverseNextNode()) {
         if (n->isElementNode()) {
             Element* e = static_cast<Element*>(n);
-            NamedAttrMap* attrs = e->attributes();
+            NamedNodeMap* attrs = e->attributes();
             unsigned length = attrs->length();
             for (unsigned i = 0; i < length; i++) {
                 Attribute* attr = attrs->attributeItem(i);
index a4d4671..5cffe33 100644 (file)
@@ -417,9 +417,9 @@ bool HTMLParser::handleError(Node* n, bool flat, const AtomicString& localName,
                     reportError(RedundantHTMLBodyError, &localName);
                     // we have another <HTML> element.... apply attributes to existing one
                     // make sure we don't overwrite already existing attributes
-                    NamedAttrMap* map = static_cast<Element*>(n)->attributes(true);
+                    NamedNodeMap* map = static_cast<Element*>(n)->attributes(true);
                     Element* existingHTML = static_cast<Element*>(m_document->documentElement());
-                    NamedAttrMap* bmap = existingHTML->attributes(false);
+                    NamedNodeMap* bmap = existingHTML->attributes(false);
                     for (unsigned l = 0; map && l < map->length(); ++l) {
                         Attribute* it = map->attributeItem(l);
                         if (!bmap->getAttributeItem(it->name()))
@@ -461,9 +461,9 @@ bool HTMLParser::handleError(Node* n, bool flat, const AtomicString& localName,
                 // make sure we don't overwrite already existing attributes
                 // some sites use <body bgcolor=rightcolor>...<body bgcolor=wrongcolor>
                 reportError(RedundantHTMLBodyError, &localName);
-                NamedAttrMap* map = static_cast<Element*>(n)->attributes(true);
+                NamedNodeMap* map = static_cast<Element*>(n)->attributes(true);
                 Element* existingBody = m_document->body();
-                NamedAttrMap* bmap = existingBody->attributes(false);
+                NamedNodeMap* bmap = existingBody->attributes(false);
                 for (unsigned l = 0; map && l < map->length(); ++l) {
                     Attribute* it = map->attributeItem(l);
                     if (!bmap->getAttributeItem(it->name()))
index 2d7257b..7679444 100644 (file)
@@ -229,7 +229,7 @@ void RenderPartObject::updateWidget(bool onlyCreateNonNetscapePlugins)
         }
         
         // Turn the attributes of either the EMBED tag or OBJECT tag into arrays, but don't override PARAM values.
-        NamedAttrMap* attributes = embedOrObject->attributes();
+        NamedNodeMap* attributes = embedOrObject->attributes();
         if (attributes) {
             for (unsigned i = 0; i < attributes->length(); ++i) {
                 Attribute* it = attributes->attributeItem(i);
@@ -280,7 +280,7 @@ void RenderPartObject::updateWidget(bool onlyCreateNonNetscapePlugins)
             return;
 
         // add all attributes set on the embed object
-        NamedAttrMap* a = o->attributes();
+        NamedNodeMap* a = o->attributes();
         if (a) {
             for (unsigned i = 0; i < a->length(); ++i) {
                 Attribute* it = a->attributeItem(i);
index e7439a4..725711d 100644 (file)
@@ -430,7 +430,7 @@ namespace WebCore {
     {
         AtomicString value(SVGAnimatedTypeValue<DecoratedType>::toString(baseValue));
 
-        NamedAttrMap* namedAttrMap = ownerElement->attributes(false); 
+        NamedNodeMap* namedAttrMap = ownerElement->attributes(false); 
         Attribute* old = namedAttrMap->getAttributeItem(attributeName);
         if (old && value.isNull()) 
             namedAttrMap->removeAttribute(old->name()); 
index 3abd603..216be1b 100644 (file)
@@ -32,7 +32,7 @@
 
 #include "Document.h"
 #include "Element.h"
-#include "NamedAttrMap.h"
+#include "NamedNodeMap.h"
 #include "XMLNames.h"
 #include "XPathUtil.h"
 #include "XPathValue.h"
@@ -537,7 +537,7 @@ Value FunLang::evaluate() const
     Attribute* languageAttribute = 0;
     Node* node = evaluationContext().node.get();
     while (node) {
-        NamedAttrMap* attrs = node->attributes();
+        NamedNodeMap* attrs = node->attributes();
         if (attrs)
             languageAttribute = attrs->getAttributeItem(XMLNames::langAttr);
         if (languageAttribute)
index ae8d9c4..5098223 100644 (file)
@@ -32,7 +32,7 @@
 
 #include "Document.h"
 #include "Element.h"
-#include "NamedAttrMap.h"
+#include "NamedNodeMap.h"
 #include "XPathNSResolver.h"
 #include "XPathParser.h"
 #include "XPathUtil.h"
@@ -187,7 +187,7 @@ void Step::nodesInAxis(Node* context, NodeSet& nodes) const
                 return;
             }
             
-            NamedAttrMap* attrs = context->attributes();
+            NamedNodeMap* attrs = context->attributes();
             if (!attrs)
                 return;