* include/debug/safe_iterator.h
(_Safe_iterator::_M_before_dereferenceable): Avoid the expensive
creation of a _Safe_iterator instance to do the check.
From-SVN: r183941
+2012-02-06 François Dumont <fdumont@gcc.gnu.org>
+
+ * include/debug/safe_iterator.h
+ (_Safe_iterator::_M_before_dereferenceable): Avoid the expensive
+ creation of a _Safe_iterator instance to do the check.
+
2012-02-05 Jonathan Wakely <jwakely.gcc@gmail.com>
PR libstdc++/52104
bool
_M_before_dereferenceable() const
{
- _Self __it = *this;
- return __it._M_incrementable() && (++__it)._M_dereferenceable();
+ if (this->_M_incrementable())
+ {
+ _Iterator __base = base();
+ return ++__base != _M_get_sequence()->_M_base().end();
+ }
+ return false;
}
/// Is the iterator incrementable?