You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by tn...@apache.org on 2002/07/09 16:59:49 UTC
cvs commit: xml-xerces/c/src/xercesc/dom/impl DOMElementImpl.cpp DOMNamedNodeMapImpl.cpp
tng 2002/07/09 07:59:49
Modified: c/src/xercesc/dom/impl DOMElementImpl.cpp
DOMNamedNodeMapImpl.cpp
Log:
DOM Performance: eliminate redundant calls.
Revision Changes Path
1.6 +11 -12 xml-xerces/c/src/xercesc/dom/impl/DOMElementImpl.cpp
Index: DOMElementImpl.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMElementImpl.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- DOMElementImpl.cpp 4 Jul 2002 15:27:56 -0000 1.5
+++ DOMElementImpl.cpp 9 Jul 2002 14:59:48 -0000 1.6
@@ -258,10 +258,8 @@
throw DOMException(DOMException::WRONG_DOCUMENT_ERR, 0);
// revisit. Exception doesn't match test.
- DOMAttr *oldAttr =
- (DOMAttr *) fAttributes->getNamedItem(newAttr->getName());
// This will throw INUSE if necessary
- fAttributes->setNamedItem(newAttr);
+ DOMAttr *oldAttr = (DOMAttr *) fAttributes->setNamedItem(newAttr);
return oldAttr;
};
@@ -298,12 +296,15 @@
throw DOMException(
DOMException::NO_MODIFICATION_ALLOWED_ERR, 0);
- DOMAttr *newAttr =
- this->fNode.getOwnerDocument()->createAttributeNS(fNamespaceURI, qualifiedName);
+ DOMAttr* newAttr = getAttributeNodeNS(fNamespaceURI, qualifiedName);
+
+ if (!newAttr)
+ {
+ newAttr = this->fNode.getOwnerDocument()->createAttributeNS(fNamespaceURI, qualifiedName);
+ fAttributes->setNamedItemNS(newAttr);
+ }
+
newAttr->setNodeValue(fValue);
- DOMNode* rem = fAttributes->setNamedItemNS(newAttr);
- if (rem)
- rem->release();
}
@@ -339,10 +340,8 @@
if (newAttr -> getOwnerDocument() != this -> getOwnerDocument())
throw DOMException(DOMException::WRONG_DOCUMENT_ERR, 0);
- DOMAttr *oldAttr = (DOMAttr *) fAttributes->getNamedItemNS(newAttr->getNamespaceURI(), newAttr->getLocalName());
-
// This will throw INUSE if necessary
- fAttributes->setNamedItemNS(newAttr);
+ DOMAttr *oldAttr = (DOMAttr *) fAttributes->setNamedItemNS(newAttr);
return oldAttr;
}
1.6 +6 -14 xml-xerces/c/src/xercesc/dom/impl/DOMNamedNodeMapImpl.cpp
Index: DOMNamedNodeMapImpl.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMNamedNodeMapImpl.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- DOMNamedNodeMapImpl.cpp 6 Jul 2002 20:16:59 -0000 1.5
+++ DOMNamedNodeMapImpl.cpp 9 Jul 2002 14:59:48 -0000 1.6
@@ -313,22 +313,14 @@
int i, len = fNodes -> size();
for (i = 0; i < len; ++i) {
DOMNode *node = fNodes -> elementAt(i);
- // if (! node -> getNamespaceURI().equals(namespaceURI)) //URI not match
- if (XMLString::compareString(node -> getNamespaceURI(), namespaceURI)) //URI not match
- continue;
const XMLCh * nNamespaceURI = node->getNamespaceURI();
const XMLCh * nLocalName = node->getLocalName();
- if (namespaceURI == 0) {
- if (nNamespaceURI == 0
- &&
- (XMLString::compareString(localName, nLocalName) == 0
+ if (XMLString::compareString(nNamespaceURI, namespaceURI)) //URI not match
+ continue;
+ else {
+ if (XMLString::compareString(localName, nLocalName) == 0
||
- (nLocalName == 0 && XMLString::compareString(localName, node->getNodeName()) == 0)))
- return i;
- } else {
- if (XMLString::compareString(namespaceURI, nNamespaceURI) == 0
- &&
- XMLString::compareString(localName, nLocalName) == 0)
+ (nLocalName == 0 && (XMLString::compareString(localName, node->getNodeName()) == 0)))
return i;
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org