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