]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
safe_local_iterator.h (_Safe_local_iterator<>): Remove _M_bucket, use same informatio...
authorFrançois Dumont <fdumont@gcc.gnu.org>
Fri, 22 Nov 2013 20:55:53 +0000 (20:55 +0000)
committerFrançois Dumont <fdumont@gcc.gnu.org>
Fri, 22 Nov 2013 20:55:53 +0000 (20:55 +0000)
2013-11-22  François Dumont  <fdumont@gcc.gnu.org>

* include/debug/safe_local_iterator.h (_Safe_local_iterator<>):
Remove _M_bucket, use same information in normal local_iterator.
(operator==): Remove redundant _M_can_compare check.
* include/debug/safe_local_iterator.tcc: Adapt.
* include/debug/unordered_set: Likewise.
* include/debug/unordered_map: Likewise.

From-SVN: r205289

libstdc++-v3/ChangeLog
libstdc++-v3/include/debug/safe_local_iterator.h
libstdc++-v3/include/debug/safe_local_iterator.tcc
libstdc++-v3/include/debug/unordered_map
libstdc++-v3/include/debug/unordered_set

index 48e048ce3a3b2e535f4ea7da650d3fcce200692b..ae34a28ba0d50c319c6e3b7bc72f0a72f99886f5 100644 (file)
@@ -1,3 +1,12 @@
+2013-11-22  François Dumont  <fdumont@gcc.gnu.org>
+
+       * include/debug/safe_local_iterator.h (_Safe_local_iterator<>):
+       Remove _M_bucket, use same information in normal local_iterator.
+       (operator==): Remove redundant _M_can_compare check.
+       * include/debug/safe_local_iterator.tcc: Adapt.
+       * include/debug/unordered_set: Likewise.
+       * include/debug/unordered_map: Likewise.
+
 2013-11-22  Jakub Jelinek  <jakub@redhat.com>
 
        * testsuite/Makefile.am (check_DEJAGNU_normal_targets): Add 10.
index 6724798b37794393636fb1d954325b4fc7f640e8..5b8d2efc99c4dcea9c9c56f9dffa0a08943cb34f 100644 (file)
@@ -58,9 +58,6 @@ namespace __gnu_debug
       /// The underlying iterator
       _Iterator _M_current;
 
-      /// The bucket this local iterator belongs to 
-      size_type _M_bucket;
-
       /// Determine if this is a constant iterator.
       bool
       _M_constant() const
@@ -89,10 +86,8 @@ namespace __gnu_debug
        * @pre @p seq is not NULL
        * @post this is not singular
        */
-      _Safe_local_iterator(const _Iterator& __i, size_type __bucket,
-                          const _Sequence* __seq)
-      : _Safe_local_iterator_base(__seq, _M_constant()), _M_current(__i),
-       _M_bucket(__bucket)
+      _Safe_local_iterator(const _Iterator& __i, const _Sequence* __seq)
+      : _Safe_local_iterator_base(__seq, _M_constant()), _M_current(__i)
       {
        _GLIBCXX_DEBUG_VERIFY(!this->_M_singular(),
                              _M_message(__msg_init_singular)
@@ -104,12 +99,12 @@ namespace __gnu_debug
        */
       _Safe_local_iterator(const _Safe_local_iterator& __x)
       : _Safe_local_iterator_base(__x, _M_constant()),
-       _M_current(__x._M_current), _M_bucket(__x._M_bucket)
+       _M_current(__x._M_current)
       {
        // _GLIBCXX_RESOLVE_LIB_DEFECTS
        // DR 408. Is vector<reverse_iterator<char*> > forbidden?
        _GLIBCXX_DEBUG_VERIFY(!__x._M_singular()
-                             || __x._M_current == _Iterator(),
+                             || __x.base() == _Iterator(),
                              _M_message(__msg_init_copy_singular)
                              ._M_iterator(*this, "this")
                              ._M_iterator(__x, "other"));
@@ -127,7 +122,7 @@ namespace __gnu_debug
              typename _Sequence::local_iterator::iterator_type>::__value,
                                          _Sequence>::__type>& __x)
        : _Safe_local_iterator_base(__x, _M_constant()),
-         _M_current(__x.base()), _M_bucket(__x._M_bucket)
+         _M_current(__x.base())
        {
          // _GLIBCXX_RESOLVE_LIB_DEFECTS
          // DR 408. Is vector<reverse_iterator<char*> > forbidden?
@@ -147,12 +142,11 @@ namespace __gnu_debug
        // _GLIBCXX_RESOLVE_LIB_DEFECTS
        // DR 408. Is vector<reverse_iterator<char*> > forbidden?
        _GLIBCXX_DEBUG_VERIFY(!__x._M_singular()
-                             || __x._M_current == _Iterator(),
+                             || __x.base() == _Iterator(),
                              _M_message(__msg_copy_singular)
                              ._M_iterator(*this, "this")
                              ._M_iterator(__x, "other"));
        _M_current = __x._M_current;
-       _M_bucket = __x._M_bucket;
        this->_M_attach(__x._M_sequence);
        return *this;
       }
@@ -225,7 +219,7 @@ namespace __gnu_debug
        * @brief Return the bucket
        */
       size_type
-      bucket() const { return _M_bucket; }
+      bucket() const { return _M_current._M_bucket; }
 
       /**
        * @brief Conversion to underlying non-debug iterator to allow
@@ -266,19 +260,20 @@ namespace __gnu_debug
       _M_get_sequence() const
       { return static_cast<_Sequence*>(_M_sequence); }
 
-      /// Is this iterator equal to the sequence's begin() iterator?
+      /// Is this iterator equal to the sequence's begin(bucket) iterator?
       bool _M_is_begin() const
-      { return base() == _M_get_sequence()->_M_base().begin(_M_bucket); }
+      { return base() == _M_get_sequence()->_M_base().begin(bucket()); }
 
-      /// Is this iterator equal to the sequence's end() iterator?
+      /// Is this iterator equal to the sequence's end(bucket) iterator?
       bool _M_is_end() const
-      { return base() == _M_get_sequence()->_M_base().end(_M_bucket); }
+      { return base() == _M_get_sequence()->_M_base().end(bucket()); }
 
       /// Is this iterator part of the same bucket as the other one?
-      template <typename _Other>
-       bool _M_in_same_bucket(const _Safe_local_iterator<_Other,
-                                               _Sequence>& __other) const
-       { return _M_bucket == __other.bucket(); }
+      template<typename _Other>
+       bool
+       _M_in_same_bucket(const _Safe_local_iterator<_Other,
+                                                    _Sequence>& __other) const
+       { return bucket() == __other.bucket(); }
     };
 
   template<typename _IteratorL, typename _IteratorR, typename _Sequence>
@@ -286,7 +281,7 @@ namespace __gnu_debug
     operator==(const _Safe_local_iterator<_IteratorL, _Sequence>& __lhs,
               const _Safe_local_iterator<_IteratorR, _Sequence>& __rhs)
     {
-      _GLIBCXX_DEBUG_VERIFY(! __lhs._M_singular() && ! __rhs._M_singular(),
+      _GLIBCXX_DEBUG_VERIFY(!__lhs._M_singular() && !__rhs._M_singular(),
                            _M_message(__msg_iter_compare_bad)
                            ._M_iterator(__lhs, "lhs")
                            ._M_iterator(__rhs, "rhs"));
@@ -294,10 +289,6 @@ namespace __gnu_debug
                            _M_message(__msg_compare_different)
                            ._M_iterator(__lhs, "lhs")
                            ._M_iterator(__rhs, "rhs"));
-      _GLIBCXX_DEBUG_VERIFY(__lhs._M_can_compare(__rhs),
-                           _M_message(__msg_compare_different)
-                           ._M_iterator(__lhs, "lhs")
-                           ._M_iterator(__rhs, "rhs"));
       _GLIBCXX_DEBUG_VERIFY(__lhs._M_in_same_bucket(__rhs),
                            _M_message(__msg_local_iter_compare_bad)
                            ._M_iterator(__lhs, "lhs")
@@ -310,7 +301,7 @@ namespace __gnu_debug
     operator==(const _Safe_local_iterator<_Iterator, _Sequence>& __lhs,
               const _Safe_local_iterator<_Iterator, _Sequence>& __rhs)
     {
-      _GLIBCXX_DEBUG_VERIFY(! __lhs._M_singular() && ! __rhs._M_singular(),
+      _GLIBCXX_DEBUG_VERIFY(!__lhs._M_singular() && !__rhs._M_singular(),
                            _M_message(__msg_iter_compare_bad)
                            ._M_iterator(__lhs, "lhs")
                            ._M_iterator(__rhs, "rhs"));
@@ -350,7 +341,7 @@ namespace __gnu_debug
     operator!=(const _Safe_local_iterator<_Iterator, _Sequence>& __lhs,
               const _Safe_local_iterator<_Iterator, _Sequence>& __rhs)
     {
-      _GLIBCXX_DEBUG_VERIFY(! __lhs._M_singular() && ! __rhs._M_singular(),
+      _GLIBCXX_DEBUG_VERIFY(!__lhs._M_singular() && !__rhs._M_singular(),
                            _M_message(__msg_iter_compare_bad)
                            ._M_iterator(__lhs, "lhs")
                            ._M_iterator(__rhs, "rhs"));
index 6633bdb779440abba9603140ff635625e56bcbc6..bef22fcaf46ac985a687ece78a90774b9a225d4d 100644 (file)
@@ -38,7 +38,7 @@ namespace __gnu_debug
     {
       if (!_M_can_compare(__rhs))
        return false;
-      if (_M_bucket != __rhs._M_bucket)
+      if (bucket() != __rhs.bucket())
        return false;
 
       /* Determine if we can order the iterators without the help of
index cbde903d8b8621f9e14a1d4ccccfd043b03764ee..c4be6ea79b306220d05d3d81a5b78f5bc5a45652 100644 (file)
@@ -208,42 +208,42 @@ namespace __debug
       begin(size_type __b)
       {
        __glibcxx_check_bucket_index(__b);
-       return local_iterator(_Base::begin(__b), __b, this);
+       return local_iterator(_Base::begin(__b), this);
       }
 
       local_iterator
       end(size_type __b)
       {
        __glibcxx_check_bucket_index(__b);
-       return local_iterator(_Base::end(__b), __b, this);
+       return local_iterator(_Base::end(__b), this);
       }
 
       const_local_iterator
       begin(size_type __b) const
       {
        __glibcxx_check_bucket_index(__b);
-       return const_local_iterator(_Base::begin(__b), __b, this);
+       return const_local_iterator(_Base::begin(__b), this);
       }
 
       const_local_iterator
       end(size_type __b) const
       {
        __glibcxx_check_bucket_index(__b);
-       return const_local_iterator(_Base::end(__b), __b, this);
+       return const_local_iterator(_Base::end(__b), this);
       }
 
       const_local_iterator
       cbegin(size_type __b) const
       {
        __glibcxx_check_bucket_index(__b);
-       return const_local_iterator(_Base::cbegin(__b), __b, this);
+       return const_local_iterator(_Base::cbegin(__b), this);
       }
 
       const_local_iterator
       cend(size_type __b) const
       {
        __glibcxx_check_bucket_index(__b);
-       return const_local_iterator(_Base::cend(__b), __b, this);
+       return const_local_iterator(_Base::cend(__b), this);
       }
 
       size_type
@@ -664,42 +664,42 @@ namespace __debug
       begin(size_type __b)
       {
        __glibcxx_check_bucket_index(__b);
-       return local_iterator(_Base::begin(__b), __b, this);
+       return local_iterator(_Base::begin(__b), this);
       }
 
       local_iterator
       end(size_type __b)
       {
        __glibcxx_check_bucket_index(__b);
-       return local_iterator(_Base::end(__b), __b, this);
+       return local_iterator(_Base::end(__b), this);
       }
 
       const_local_iterator
       begin(size_type __b) const
       {
        __glibcxx_check_bucket_index(__b);
-       return const_local_iterator(_Base::begin(__b), __b, this);
+       return const_local_iterator(_Base::begin(__b), this);
       }
 
       const_local_iterator
       end(size_type __b) const
       {
        __glibcxx_check_bucket_index(__b);
-       return const_local_iterator(_Base::end(__b), __b, this);
+       return const_local_iterator(_Base::end(__b), this);
       }
 
       const_local_iterator
       cbegin(size_type __b) const
       {
        __glibcxx_check_bucket_index(__b);
-       return const_local_iterator(_Base::cbegin(__b), __b, this);
+       return const_local_iterator(_Base::cbegin(__b), this);
       }
 
       const_local_iterator
       cend(size_type __b) const
       {
        __glibcxx_check_bucket_index(__b);
-       return const_local_iterator(_Base::cend(__b), __b, this);
+       return const_local_iterator(_Base::cend(__b), this);
       }
 
       size_type
index 66898e243b1b828265cc9073407236432d65abf1..4923be8c7ea0ee6f14d7675db34c1ab20d7d273e 100644 (file)
@@ -207,42 +207,42 @@ namespace __debug
       begin(size_type __b)
       {
        __glibcxx_check_bucket_index(__b);
-       return local_iterator(_Base::begin(__b), __b, this);
+       return local_iterator(_Base::begin(__b), this);
       }
 
       local_iterator
       end(size_type __b)
       {
        __glibcxx_check_bucket_index(__b);
-       return local_iterator(_Base::end(__b), __b, this);
+       return local_iterator(_Base::end(__b), this);
       }
 
       const_local_iterator
       begin(size_type __b) const
       {
        __glibcxx_check_bucket_index(__b);
-       return const_local_iterator(_Base::begin(__b), __b, this);
+       return const_local_iterator(_Base::begin(__b), this);
       }
 
       const_local_iterator
       end(size_type __b) const
       {
        __glibcxx_check_bucket_index(__b);
-       return const_local_iterator(_Base::end(__b), __b, this);
+       return const_local_iterator(_Base::end(__b), this);
       }
 
       const_local_iterator
       cbegin(size_type __b) const
       {
        __glibcxx_check_bucket_index(__b);
-       return const_local_iterator(_Base::cbegin(__b), __b, this);
+       return const_local_iterator(_Base::cbegin(__b), this);
       }
 
       const_local_iterator
       cend(size_type __b) const
       {
        __glibcxx_check_bucket_index(__b);
-       return const_local_iterator(_Base::cend(__b), __b, this);
+       return const_local_iterator(_Base::cend(__b), this);
       }
 
       size_type
@@ -658,42 +658,42 @@ namespace __debug
       begin(size_type __b)
       {
        __glibcxx_check_bucket_index(__b);
-       return local_iterator(_Base::begin(__b), __b, this);
+       return local_iterator(_Base::begin(__b), this);
       }
 
       local_iterator
       end(size_type __b)
       {
        __glibcxx_check_bucket_index(__b);
-       return local_iterator(_Base::end(__b), __b, this);
+       return local_iterator(_Base::end(__b), this);
       }
 
       const_local_iterator
       begin(size_type __b) const
       {
        __glibcxx_check_bucket_index(__b);
-       return const_local_iterator(_Base::begin(__b), __b, this);
+       return const_local_iterator(_Base::begin(__b), this);
       }
 
       const_local_iterator
       end(size_type __b) const
       {
        __glibcxx_check_bucket_index(__b);
-       return const_local_iterator(_Base::end(__b), __b, this);
+       return const_local_iterator(_Base::end(__b), this);
       }
 
       const_local_iterator
       cbegin(size_type __b) const
       {
        __glibcxx_check_bucket_index(__b);
-       return const_local_iterator(_Base::cbegin(__b), __b, this);
+       return const_local_iterator(_Base::cbegin(__b), this);
       }
 
       const_local_iterator
       cend(size_type __b) const
       {
        __glibcxx_check_bucket_index(__b);
-       return const_local_iterator(_Base::cend(__b), __b, this);
+       return const_local_iterator(_Base::cend(__b), this);
       }
 
       size_type