What is the issue number that this resolves?
Martin
[EMAIL PROTECTED] wrote:
Author: faridz
Date: Fri Jul 6 08:34:56 2007
New Revision: 553931
URL: http://svn.apache.org/viewvc?view=rev&rev=553931
Log:
2007-07-06 Farid Zaripov <[EMAIL PROTECTED]>
* sstream.cc (xsputn): Allow to pass internal buffer as method
parameter.
Modified:
incubator/stdcxx/trunk/include/sstream.cc
Modified: incubator/stdcxx/trunk/include/sstream.cc
URL:
http://svn.apache.org/viewvc/incubator/stdcxx/trunk/include/sstream.cc?view=diff&rev=553931&r1=553930&r2=553931
==============================================================================
--- incubator/stdcxx/trunk/include/sstream.cc (original)
+++ incubator/stdcxx/trunk/include/sstream.cc Fri Jul 6 08:34:56 2007
@@ -185,9 +185,20 @@
const _RWSTD_SIZE_T __bufsize =
__n + (this->pptr () - this->pbase ());
+ int off = -1;
+
+ if (this->pbase () <= __s && this->pptr () > __s) {
+ // __s is part of buffer
+ _RWSTD_ASSERT (this->epptr () >= __s + __n);
+ off = this->pbase () - __s;
+ }
+
// grow the buffer if necessary to accommodate the whole
// string plus the contents of the buffer up to pptr()
str (this->_C_buffer, __bufsize);
+
+ if (0 <= off)
+ __s = this->pbase () + off;
_RWSTD_ASSERT (__n <= this->epptr () - this->pptr ());
}