2018-06-07 François Dumont <fdumont@gcc.gnu.org>

* src/c++11/debug.cc
	(_Safe_iterator_base::_M_detach()): Reset state only if needed.
	(_Safe_iterator_base::_M_detach_single()): Likewise.
	(_Safe_local_iterator_base::_M_detach()): Reset state only if needed.
	(_Safe_local_iterator_base::_M_detach_single()): Likewise.

From-SVN: r261262
This commit is contained in:
François Dumont 2018-06-07 05:44:53 +00:00
parent 244aebfd6c
commit 7a205f505f
2 changed files with 24 additions and 12 deletions

View File

@ -1,3 +1,11 @@
2018-06-07 François Dumont <fdumont@gcc.gnu.org>
* src/c++11/debug.cc
(_Safe_iterator_base::_M_detach()): Reset state only if needed.
(_Safe_iterator_base::_M_detach_single()): Likewise.
(_Safe_local_iterator_base::_M_detach()): Reset state only if needed.
(_Safe_local_iterator_base::_M_detach_single()): Likewise.
2018-06-06 Jonathan Wakely <jwakely@redhat.com> 2018-06-06 Jonathan Wakely <jwakely@redhat.com>
* include/bits/shared_ptr_base.h (__shared_count): Remove redundant * include/bits/shared_ptr_base.h (__shared_count): Remove redundant

View File

@ -377,9 +377,10 @@ namespace __gnu_debug
_M_detach() _M_detach()
{ {
if (_M_sequence) if (_M_sequence)
_M_sequence->_M_detach(this); {
_M_sequence->_M_detach(this);
_M_reset(); _M_reset();
}
} }
void void
@ -387,9 +388,10 @@ namespace __gnu_debug
_M_detach_single() throw () _M_detach_single() throw ()
{ {
if (_M_sequence) if (_M_sequence)
_M_sequence->_M_detach_single(this); {
_M_sequence->_M_detach_single(this);
_M_reset(); _M_reset();
}
} }
void void
@ -460,9 +462,10 @@ namespace __gnu_debug
_M_detach() _M_detach()
{ {
if (_M_sequence) if (_M_sequence)
_M_get_container()->_M_detach_local(this); {
_M_get_container()->_M_detach_local(this);
_M_reset(); _M_reset();
}
} }
void void
@ -470,9 +473,10 @@ namespace __gnu_debug
_M_detach_single() throw () _M_detach_single() throw ()
{ {
if (_M_sequence) if (_M_sequence)
_M_get_container()->_M_detach_local_single(this); {
_M_get_container()->_M_detach_local_single(this);
_M_reset(); _M_reset();
}
} }
void void