CVS commit by buis: Abstract the NodeList a bit more, friend decls not needed here. M +2 -7 DocumentImpl.cc 1.26 M +2 -7 ElementImpl.cc 1.28 M +2 -1 NodeListImpl.cc 1.5 M +1 -4 NodeListImpl.h 1.8 M +3 -1 TagNodeListImpl.cc 1.3 M +2 -5 TagNodeListImpl.h 1.7 --- kdenonbeta/kdom/impl/ElementImpl.cc #1.27:1.28 @@ -256,8 +256,6 @@ AttrImpl *ElementImpl::removeAttributeNo NodeListImpl *ElementImpl::getElementsByTagName(const DOMString &name) { - TagNodeListImpl *p = new TagNodeListImpl(); + TagNodeListImpl *p = new TagNodeListImpl(this, name); p->ref(); - p->name = name; - p->refNode = this; return p; } @@ -359,9 +357,6 @@ AttrImpl *ElementImpl::setAttributeNodeN NodeListImpl *ElementImpl::getElementsByTagNameNS(const DOMString &namespaceURI, const DOMString &localName) { - TagNodeListImpl *p = new TagNodeListImpl(); + TagNodeListImpl *p = new TagNodeListImpl(this, localName, namespaceURI); p->ref(); - p->name = localName; - p->namespaceURI = namespaceURI; - p->refNode = this; return p; } --- kdenonbeta/kdom/impl/DocumentImpl.cc #1.25:1.26 @@ -323,8 +323,6 @@ Ecma *DocumentImpl::ecmaEngine() const NodeListImpl *DocumentImpl::getElementsByTagName(const DOMString &tagName) { - TagNodeListImpl *p = new TagNodeListImpl(); + TagNodeListImpl *p = new TagNodeListImpl(this, tagName); p->ref(); - p->name = tagName; - p->refNode = this; return p; } @@ -332,9 +330,6 @@ NodeListImpl *DocumentImpl::getElementsB NodeListImpl *DocumentImpl::getElementsByTagNameNS(const DOMString &namespaceURI, const DOMString &localName) { - TagNodeListImpl *p = new TagNodeListImpl(); + TagNodeListImpl *p = new TagNodeListImpl(this, localName, namespaceURI); p->ref(); - p->name = localName; - p->namespaceURI = namespaceURI; - p->refNode = this; return p; } --- kdenonbeta/kdom/impl/NodeListImpl.h #1.7:1.8 @@ -32,5 +32,5 @@ namespace KDOM { public: - NodeListImpl(); + NodeListImpl(NodeImpl *_refNode); virtual ~NodeListImpl(); @@ -40,7 +40,4 @@ namespace KDOM protected: - friend class NodeList; - friend class NodeImpl; - NodeImpl *refNode; }; --- kdenonbeta/kdom/impl/NodeListImpl.cc #1.4:1.5 @@ -26,5 +26,6 @@ using namespace KDOM; -NodeListImpl::NodeListImpl() : Shared(), refNode(0) +NodeListImpl::NodeListImpl(NodeImpl *_refNode) +: Shared(), refNode(_refNode) { } --- kdenonbeta/kdom/impl/TagNodeListImpl.h #1.6:1.7 @@ -33,5 +33,6 @@ namespace KDOM { public: - TagNodeListImpl(); + TagNodeListImpl(NodeImpl *refNode, DOMString _name, + DOMString _namespaceURI = DOMString()); virtual ~TagNodeListImpl(); @@ -39,8 +40,4 @@ namespace KDOM protected: - friend class DocumentImpl; - friend class ElementImpl; - friend class Element; - DOMString name, namespaceURI; }; --- kdenonbeta/kdom/impl/TagNodeListImpl.cc #1.2:1.3 @@ -26,5 +26,7 @@ using namespace KDOM; -TagNodeListImpl::TagNodeListImpl() : NodeListImpl() +TagNodeListImpl::TagNodeListImpl(NodeImpl *refNode, DOMString _name, + DOMString _namespaceURI) +: NodeListImpl(refNode), name(_name), namespaceURI(_namespaceURI) { }