amassari 2005/02/25 03:31:08 Modified: c/src/xercesc/parsers SAX2XMLReaderImpl.cpp SAX2XMLReaderImpl.hpp Log: Performance improvements by David Bertoni (jira# 1343) Revision Changes Path 1.43 +14 -24 xml-xerces/c/src/xercesc/parsers/SAX2XMLReaderImpl.cpp Index: SAX2XMLReaderImpl.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/parsers/SAX2XMLReaderImpl.cpp,v retrieving revision 1.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- SAX2XMLReaderImpl.cpp 30 Dec 2004 15:23:41 -0000 1.42 +++ SAX2XMLReaderImpl.cpp 25 Feb 2005 11:31:07 -0000 1.43 @@ -16,6 +16,9 @@ /* * $Log$ + * Revision 1.43 2005/02/25 11:31:07 amassari + * Performance improvements by David Bertoni (jira# 1343) + * * Revision 1.42 2004/12/30 15:23:41 amassari * Notify advanced handlers of the whitespace before and after the root document element (jira# 729) * @@ -353,7 +356,6 @@ , fValidator(0) , fMemoryManager(manager) , fGrammarPool(gramPool) - , fBuffer(1023,manager) { try { @@ -958,19 +960,13 @@ if (fDocHandler) { - fBuffer.reset(); - if (elemPrefix && *elemPrefix) { - fBuffer.set(elemPrefix); - fBuffer.append(chColon); - } - fBuffer.append(elemDecl.getBaseName()); + const XMLCh* const elemQName = + elemDecl.getFullName(); if (getDoNamespaces()) { unsigned int numPrefix = 0; const XMLCh* nsString = XMLUni::fgXMLNSString; - const XMLCh* nsPrefix = 0; - const XMLCh* nsURI = 0; const XMLAttr* tempAttr = 0; if (!fNamespacePrefix) @@ -980,6 +976,9 @@ for (unsigned int i = 0; i < attrCount; i++) { + const XMLCh* nsPrefix = 0; + const XMLCh* nsURI = 0; + tempAttr = attrList.elementAt(i); if (XMLString::equals(tempAttr->getQName(), nsString)) nsURI = tempAttr->getValue(); @@ -991,7 +990,7 @@ if (!fNamespacePrefix) { if (nsURI == 0) - fTempAttrVec->addElement((XMLAttr* const)tempAttr); + fTempAttrVec->addElement((XMLAttr*)tempAttr); } if (nsURI != 0) { @@ -1002,8 +1001,6 @@ fPrefixes->push(nPrefixId) ; numPrefix++; } - nsURI = 0; - nsPrefix = 0; } fPrefixCounts->push(numPrefix) ; if (!fNamespacePrefix) @@ -1016,7 +1013,7 @@ ( fScanner->getURIText(elemURLId) , elemDecl.getBaseName() - , fBuffer.getRawBuffer() + , elemQName , fAttrList ); } @@ -1025,7 +1022,7 @@ fAttrList.setVector(&attrList, attrCount, fScanner); fDocHandler->startElement(XMLUni::fgZeroLenString, elemDecl.getBaseName(), - elemDecl.getFullName(), + elemQName, fAttrList); } @@ -1040,7 +1037,7 @@ ( fScanner->getURIText(elemURLId) , elemDecl.getBaseName() - , fBuffer.getRawBuffer() + , elemQName ); unsigned int numPrefix = fPrefixCounts->pop(); @@ -1054,7 +1051,7 @@ { fDocHandler->endElement(XMLUni::fgZeroLenString, elemDecl.getBaseName(), - elemDecl.getFullName()); + elemQName); } } } @@ -1090,18 +1087,11 @@ // get the prefixes back so that we can call endPrefixMapping() if (getDoNamespaces()) { - fBuffer.reset(); - if (elemPrefix && *elemPrefix) { - fBuffer.set(elemPrefix); - fBuffer.append(chColon); - } - fBuffer.append(elemDecl.getBaseName()); - fDocHandler->endElement ( fScanner->getURIText(uriId) , elemDecl.getBaseName() - , fBuffer.getRawBuffer() + , elemDecl.getFullName() ); unsigned int numPrefix = fPrefixCounts->pop(); 1.30 +3 -4 xml-xerces/c/src/xercesc/parsers/SAX2XMLReaderImpl.hpp Index: SAX2XMLReaderImpl.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/parsers/SAX2XMLReaderImpl.hpp,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- SAX2XMLReaderImpl.hpp 10 Dec 2004 10:52:16 -0000 1.29 +++ SAX2XMLReaderImpl.hpp 25 Feb 2005 11:31:07 -0000 1.30 @@ -16,6 +16,9 @@ /* * $Log$ + * Revision 1.30 2005/02/25 11:31:07 amassari + * Performance improvements by David Bertoni (jira# 1343) + * * Revision 1.29 2004/12/10 10:52:16 cargilld * Make setInputBufferSize virtual. Fix from Christian Will. * @@ -1852,9 +1855,6 @@ // The grammar pool passed from external application (through derivatives). // which could be 0, not owned. // - // fBuffer - // A buffer used to store the element name - // // ----------------------------------------------------------------------- bool fNamespacePrefix; bool fAutoValidation; @@ -1884,7 +1884,6 @@ XMLValidator* fValidator; MemoryManager* fMemoryManager; XMLGrammarPool* fGrammarPool; - XMLBuffer fBuffer; // ----------------------------------------------------------------------- // internal function used to set the state of the parser
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]