basic_string.tcc (_Rep::_S_create): Call _M_set_sharable() for backwards compatibility.

* include/bits/basic_string.tcc (_Rep::_S_create): Call
	_M_set_sharable() for backwards compatibility.

From-SVN: r117777
This commit is contained in:
Jakub Jelinek 2006-10-16 11:51:14 +02:00 committed by Jakub Jelinek
parent d7aa4788df
commit 039f9e35a6
2 changed files with 13 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2006-10-16 Jakub Jelinek <jakub@redhat.com>
* include/bits/basic_string.tcc (_Rep::_S_create): Call
_M_set_sharable() for backwards compatibility.
2006-10-15 Paolo Carlini <pcarlini@suse.de>
* include/bits/istream.tcc (getline(basic_istream<>&,

View File

@ -588,6 +588,14 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
void* __place = _Raw_bytes_alloc(__alloc).allocate(__size);
_Rep *__p = new (__place) _Rep;
__p->_M_capacity = __capacity;
// ABI compatibility - 3.4.x set in _S_create both
// _M_refcount and _M_length. All callers of _S_create
// in basic_string.tcc then set just _M_length.
// In 4.0.x and later both _M_refcount and _M_length
// are initialized in the callers, unfortunately we can
// have 3.4.x compiled code with _S_create callers inlined
// calling 4.0.x+ _S_create.
__p->_M_set_sharable();
return __p;
}