diff --git a/src/xercesc/parsers/SAX2XMLReaderImpl.cpp b/src/xercesc/parsers/SAX2XMLReaderImpl.cpp index fc4c5e1758b4417e4b5739a7828d50d4df1366ef..d439c4c935b08645fd1823929cba7b13f19d4efe 100644 --- a/src/xercesc/parsers/SAX2XMLReaderImpl.cpp +++ b/src/xercesc/parsers/SAX2XMLReaderImpl.cpp @@ -16,6 +16,9 @@ /* * $Log$ + * Revision 1.40 2004/10/04 11:30:51 amassari + * As start/endPrefixMapping doesn't use the XMLBufMgr variable, we need only one XMLBuffer + * * Revision 1.39 2004/10/04 09:26:31 amassari * Use an XMLStringPool+ValueStackOf(int) object to store the prefixes currently in scope, instead of a XMLBufMgr+ValueStack(XMLBuffer), that has a limitation of 32 items (jira#866) * @@ -285,7 +288,6 @@ */ #include <xercesc/util/IOException.hpp> -#include <xercesc/util/XMLChTranscoder.hpp> #include <xercesc/util/RefStackOf.hpp> #include <xercesc/util/XMLUniDefs.hpp> #include <xercesc/util/Janitor.hpp> @@ -344,7 +346,7 @@ SAX2XMLReaderImpl::SAX2XMLReaderImpl(MemoryManager* const manager , fValidator(0) , fMemoryManager(manager) , fGrammarPool(gramPool) - , fStringBuffers(manager) + , fBuffer(1023,manager) { try { @@ -949,12 +951,12 @@ startElement( const XMLElementDecl& elemDecl if (fDocHandler) { - XMLBufBid elemQName( &fStringBuffers ) ; + fBuffer.reset(); if (elemPrefix && *elemPrefix) { - elemQName.set(elemPrefix); - elemQName.append(chColon); + fBuffer.set(elemPrefix); + fBuffer.append(chColon); } - elemQName.append(elemDecl.getBaseName()); + fBuffer.append(elemDecl.getBaseName()); if (getDoNamespaces()) { @@ -1007,7 +1009,7 @@ startElement( const XMLElementDecl& elemDecl ( fScanner->getURIText(elemURLId) , elemDecl.getBaseName() - , elemQName.getRawBuffer() + , fBuffer.getRawBuffer() , fAttrList ); } @@ -1031,7 +1033,7 @@ startElement( const XMLElementDecl& elemDecl ( fScanner->getURIText(elemURLId) , elemDecl.getBaseName() - , elemQName.getRawBuffer() + , fBuffer.getRawBuffer() ); unsigned int numPrefix = fPrefixCounts->pop(); @@ -1081,18 +1083,18 @@ void SAX2XMLReaderImpl::endElement( const XMLElementDecl& elemDecl // get the prefixes back so that we can call endPrefixMapping() if (getDoNamespaces()) { - XMLBufBid elemQName( &fStringBuffers ) ; + fBuffer.reset(); if (elemPrefix && *elemPrefix) { - elemQName.set(elemPrefix); - elemQName.append(chColon); + fBuffer.set(elemPrefix); + fBuffer.append(chColon); } - elemQName.append(elemDecl.getBaseName()); + fBuffer.append(elemDecl.getBaseName()); fDocHandler->endElement ( fScanner->getURIText(uriId) , elemDecl.getBaseName() - , elemQName.getRawBuffer() + , fBuffer.getRawBuffer() ); unsigned int numPrefix = fPrefixCounts->pop(); diff --git a/src/xercesc/parsers/SAX2XMLReaderImpl.hpp b/src/xercesc/parsers/SAX2XMLReaderImpl.hpp index 592975fedf060ddffb2ab4a7ee0805da55717629..2d3e3b1cd109f6099097f9a7b5deb0abb7a88c48 100644 --- a/src/xercesc/parsers/SAX2XMLReaderImpl.hpp +++ b/src/xercesc/parsers/SAX2XMLReaderImpl.hpp @@ -16,6 +16,9 @@ /* * $Log$ + * Revision 1.28 2004/10/04 11:30:51 amassari + * As start/endPrefixMapping doesn't use the XMLBufMgr variable, we need only one XMLBuffer + * * Revision 1.27 2004/10/04 09:26:31 amassari * Use an XMLStringPool+ValueStackOf(int) object to store the prefixes currently in scope, instead of a XMLBufMgr+ValueStack(XMLBuffer), that has a limitation of 32 items (jira#866) * @@ -211,7 +214,6 @@ #include <xercesc/util/RefStackOf.hpp> #include <xercesc/util/SecurityManager.hpp> #include <xercesc/util/ValueStackOf.hpp> -#include <xercesc/framework/XMLBufferMgr.hpp> XERCES_CPP_NAMESPACE_BEGIN @@ -1788,8 +1790,8 @@ private : // Tells the parser whether it should reuse the grammar or not. // If true, there cannot be any internal subset. // - // fStringBuffers - // Any temporary strings we need are pulled out of this pool + // fPrefixesStorage + // the namespace prefixes will be allocated from this pool // // fPrefixes // A Stack of the current namespace prefixes that need calls to @@ -1847,6 +1849,9 @@ private : // 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; @@ -1876,7 +1881,7 @@ private : XMLValidator* fValidator; MemoryManager* fMemoryManager; XMLGrammarPool* fGrammarPool; - XMLBufferMgr fStringBuffers; + XMLBuffer fBuffer; // ----------------------------------------------------------------------- // internal function used to set the state of the parser