You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by db...@locus.apache.org on 2000/07/06 00:17:10 UTC
cvs commit: xml-xalan/c/src/XercesPlatformSupport XercesTextOutputStream.cpp
dbertoni 00/07/05 15:17:08
Modified: c/src/XercesPlatformSupport XercesTextOutputStream.cpp
Log:
Updated buffer management code.
Revision Changes Path
1.6 +21 -3 xml-xalan/c/src/XercesPlatformSupport/XercesTextOutputStream.cpp
Index: XercesTextOutputStream.cpp
===================================================================
RCS file: /home/cvs/xml-xalan/c/src/XercesPlatformSupport/XercesTextOutputStream.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- XercesTextOutputStream.cpp 2000/06/28 17:52:36 1.5
+++ XercesTextOutputStream.cpp 2000/07/05 22:17:07 1.6
@@ -70,8 +70,9 @@
XercesTextOutputStream::XercesTextOutputStream(BufferType::size_type theBufferSize) :
m_buffer(),
- m_bufferSize(theBufferSize)
+ m_bufferSize(0)
{
+ setBufferSize(theBufferSize);
}
@@ -204,11 +205,28 @@
void
XercesTextOutputStream::setBufferSize(BufferType::size_type theBufferSize)
{
+ flushBuffer();
+
m_bufferSize = theBufferSize;
- if (m_buffer.size() > m_bufferSize)
+ if (m_buffer.size() < m_bufferSize)
{
- flushBuffer();
+ // Enlarge the buffer...
+ m_buffer.reserve(theBufferSize);
+ }
+ else if (m_buffer.size() > m_bufferSize)
+ {
+ // Shrink the buffer.
+
+ // Create a temp buffer and make it
+ // the correct size.
+ BufferType temp;
+
+ temp.reserve(theBufferSize);
+
+ // Swap temp with m_buffer so that
+ // m_buffer is now the correct size.
+ temp.swap(m_buffer);
}
}