diff options
author | Jakub Jelinek <jakub@redhat.com> | 2006-10-16 11:51:14 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2006-10-16 11:51:14 +0200 |
commit | 039f9e35a67df1b09fafecebf28c37eb379ee41f (patch) | |
tree | 22129bfacf61f0b81eb55300b82b6c1575083d37 | |
parent | d7aa4788df0b2d415453a61329bead6ac4b2f763 (diff) | |
download | gcc-039f9e35a67df1b09fafecebf28c37eb379ee41f.zip gcc-039f9e35a67df1b09fafecebf28c37eb379ee41f.tar.gz gcc-039f9e35a67df1b09fafecebf28c37eb379ee41f.tar.bz2 |
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
-rw-r--r-- | libstdc++-v3/ChangeLog | 5 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/basic_string.tcc | 8 |
2 files changed, 13 insertions, 0 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 0fa59dd..0aed5e0 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -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<>&, diff --git a/libstdc++-v3/include/bits/basic_string.tcc b/libstdc++-v3/include/bits/basic_string.tcc index 4cf5f29..fadf9b3 100644 --- a/libstdc++-v3/include/bits/basic_string.tcc +++ b/libstdc++-v3/include/bits/basic_string.tcc @@ -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; } |