You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by Martin Sebor <se...@roguewave.com> on 2007/08/14 18:41:58 UTC

Re: svn commit: r564213 - /incubator/stdcxx/trunk/include/sstream.cc

This isn't the reason for STDCXX-515, is it?

Martin

faridz@apache.org wrote:
> Author: faridz
> Date: Thu Aug  9 07:21:44 2007
> New Revision: 564213
> 
> URL: http://svn.apache.org/viewvc?view=rev&rev=564213
> Log:
> 2007-08-09 Farid Zaripov <Fa...@epam.com>
> 
> 	STDCXX-514
> 	* sstream.cc (str): Take ownership of the allocated buffer a bit
> 	later to avoid deallocation of the external buffer.
> 
> 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=564213&r1=564212&r2=564213
> ==============================================================================
> --- incubator/stdcxx/trunk/include/sstream.cc (original)
> +++ incubator/stdcxx/trunk/include/sstream.cc Thu Aug  9 07:21:44 2007
> @@ -111,9 +111,6 @@
>          }
>  
>          __buf = __alloc.allocate (__bufsize);
> -
> -        // take ownsership of the allocated buffer
> -        this->_C_own_buf (true);
>      }
>      else if (0 < __bufsize) {
>          // requested capacity is the same or less than the current one
> @@ -139,6 +136,9 @@
>              if (this->_C_buffer && this->_C_own_buf ())
>                  __alloc.deallocate (this->_C_buffer, this->_C_bufsize);
>  
> +            // take ownership of the allocated buffer
> +            this->_C_own_buf (true);
> +
>              this->_C_buffer  = __buf;
>              this->_C_bufsize = __bufsize;
>          }
> @@ -185,20 +185,9 @@
>          const _RWSTD_SIZE_T __bufsize =
>              __n + (this->pptr () - this->pbase ());
>  
> -        _RWSTD_PTRDIFF_T __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 ());
>      }
> 
> 


RE: svn commit: r564213 - /incubator/stdcxx/trunk/include/sstream.cc

Posted by Farid Zaripov <Fa...@epam.com>.
> -----Original Message-----
> From: Martin Sebor [mailto:sebor@roguewave.com] 
> Sent: Tuesday, August 14, 2007 7:42 PM
> To: stdcxx-dev@incubator.apache.org
> Subject: Re: svn commit: r564213 - 
> /incubator/stdcxx/trunk/include/sstream.cc
> 
> This isn't the reason for STDCXX-515, is it?

  No. The STDCXX-514 and STDCXX-515 is the different independent bugs.

Farid.