knoaman     2003/02/04 11:33:40

  Modified:    c/src/xercesc/parsers AbstractDOMParser.cpp
  Log:
  Performance: use temporary buffer only as needed.
  
  Revision  Changes    Path
  1.37      +16 -12    xml-xerces/c/src/xercesc/parsers/AbstractDOMParser.cpp
  
  Index: AbstractDOMParser.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/parsers/AbstractDOMParser.cpp,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- AbstractDOMParser.cpp     31 Jan 2003 19:40:18 -0000      1.36
  +++ AbstractDOMParser.cpp     4 Feb 2003 19:33:40 -0000       1.37
  @@ -777,24 +777,29 @@
   
       if (fScanner -> getDoNamespaces()) {    //DOM Level 2, doNamespaces on
   
  -       XMLBufBid bbURI(&fBufMgr);
  -        XMLBuffer& bufURI = bbURI.getBuffer();
  -        XMLCh* namespaceURI = 0;
  -
  -        XMLBufBid elemQName(&fBufMgr);
  +        const XMLCh* namespaceURI = 0;
   
           if (urlId != fScanner->getEmptyNamespaceId()) {  //TagName has a prefix
  -            fScanner->getURIText(urlId, bufURI);   //get namespaceURI
  -            namespaceURI = bufURI.getRawBuffer();
  +
  +            namespaceURI = fScanner->getURIText(urlId); //get namespaceURI
   
               if (elemPrefix && *elemPrefix) {
  +
  +                XMLBufBid elemQName(&fBufMgr);
  +
                   elemQName.set(elemPrefix);
                   elemQName.append(chColon);
  +                elemQName.append(elemDecl.getBaseName());
  +                elem = createElementNSNode(namespaceURI, elemQName.getRawBuffer());
  +            }
  +            else { 
  +                elem = createElementNSNode(namespaceURI, elemDecl.getBaseName());
               }
  +        } 
  +        else {
  +            elem = createElementNSNode(namespaceURI, elemDecl.getBaseName());
           }
  -        elemQName.append(elemDecl.getBaseName());
   
  -        elem = createElementNSNode(namespaceURI, elemQName.getRawBuffer());
           elemImpl = (DOMElementImpl *) elem;
   
           for (unsigned int index = 0; index < attrCount; ++index) {
  @@ -804,8 +809,7 @@
               if (XMLString::equals(oneAttrib -> getName(), XMLNS))    //for xmlns=...
                   attrURIId = fScanner->getXMLNSNamespaceId();
               if (attrURIId != fScanner->getEmptyNamespaceId()) {  //TagName has a 
prefix
  -                fScanner->getURIText(attrURIId, bufURI);   //get namespaceURI
  -                namespaceURI = bufURI.getRawBuffer();
  +                namespaceURI = fScanner->getURIText(attrURIId);   //get namespaceURI
               }
               //  revisit.  Optimize to init the named node map to the
               //            right size up front.
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to