]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
2010-11-27 François Dumont <francois.cppdevs@free.fr>
authorFrançois Dumont <francois.cppdevs@free.fr>
Sat, 27 Nov 2010 12:51:58 +0000 (13:51 +0100)
committerFrançois Dumont <fdumont@gcc.gnu.org>
Sat, 27 Nov 2010 12:51:58 +0000 (12:51 +0000)
        * include/debug/unordered_map, unordered_set (unordered_map<>::insert,
        unordered_multimap<>::insert, unordered_set<>::insert,
        unordered_multiset<>::insert) Debug check iterator hint and pass it to
        normal implementation.

From-SVN: r167198

libstdc++-v3/ChangeLog
libstdc++-v3/include/debug/unordered_map
libstdc++-v3/include/debug/unordered_set

index c8318c6262e3c3b433652032a3683e162fc5be94..2e5663d4ce04340d5d1fe1f5f1e8492cd26b3df3 100644 (file)
@@ -1,3 +1,10 @@
+2010-11-27  François Dumont  <francois.cppdevs@free.fr>
+
+       * include/debug/unordered_map, unordered_set (unordered_map<>::insert,
+       unordered_multimap<>::insert, unordered_set<>::insert,
+       unordered_multiset<>::insert) Debug check iterator hint and pass it to
+       normal implementation.
+
 2010-11-27  François Dumont  <francois.cppdevs@free.fr>
 
        * include/debug/bitset (bitset<>::reference): Clean code, use normal
index 29484c1ccdc50dfe893ff5c898ce38c394b79fd4..d7b139388b0b72cacef882ef8e4cd3d1e42b3a86 100644 (file)
@@ -185,9 +185,10 @@ namespace __debug
       }
 
       iterator
-      insert(const_iterator, const value_type& __obj)
+      insert(const_iterator __hint, const value_type& __obj)
       {
-       return iterator(_Base::insert(__obj).first, this);
+       __glibcxx_check_insert(__hint);
+       return iterator(_Base::insert(__hint.base(), __obj), this);
       }
 
       template<typename _Pair, typename = typename
@@ -205,9 +206,11 @@ namespace __debug
               std::enable_if<std::is_convertible<_Pair,
                                                  value_type>::value>::type>
         iterator
-        insert(const_iterator, _Pair&& __obj)
+        insert(const_iterator __hint, _Pair&& __obj)
         {
-         return iterator(_Base::insert(std::forward<_Pair>(__obj)).first,
+         __glibcxx_check_insert(__hint);
+         return iterator(_Base::insert(__hint.base(),
+                                       std::forward<_Pair>(__obj)),
                          this);
        }
 
@@ -467,8 +470,11 @@ namespace __debug
       { return iterator(_Base::insert(__obj), this); }
 
       iterator
-      insert(const_iterator, const value_type& __obj)
-      { return iterator(_Base::insert(__obj), this); }
+      insert(const_iterator __hint, const value_type& __obj)
+      {
+       __glibcxx_check_insert(__hint);
+       return iterator(_Base::insert(__hint.base(), __obj), this);
+      }
 
       template<typename _Pair, typename = typename
               std::enable_if<std::is_convertible<_Pair,
@@ -481,8 +487,13 @@ namespace __debug
               std::enable_if<std::is_convertible<_Pair,
                                                  value_type>::value>::type>
        iterator
-       insert(const_iterator, _Pair&& __obj)
-       { return iterator(_Base::insert(std::forward<_Pair>(__obj)), this); }
+       insert(const_iterator __hint, _Pair&& __obj)
+       {
+         __glibcxx_check_insert(__hint);
+         return iterator(_Base::insert(__hint.base(),
+                                       std::forward<_Pair>(__obj)),
+                         this);
+       }
 
       void
       insert(std::initializer_list<value_type> __l)
index a606efec26f420efe7d1898104e55ed8cda89573..e39cfa8f9a10fee06a0f316b83ebb7ce63b83e1b 100644 (file)
@@ -186,11 +186,10 @@ namespace __debug
       }
 
       iterator
-      insert(const_iterator, const value_type& __obj)
+      insert(const_iterator __hint, const value_type& __obj)
       {
-       typedef std::pair<_Base_iterator, bool> __pair_type;
-       __pair_type __res = _Base::insert(__obj);
-       return iterator(__res.first, this);
+       __glibcxx_check_insert(__hint);
+       return iterator(_Base::insert(__hint.base(), __obj), this);
       }
 
       std::pair<iterator, bool>
@@ -202,11 +201,10 @@ namespace __debug
       }
 
       iterator
-      insert(const_iterator, value_type&& __obj)
+      insert(const_iterator __hint, value_type&& __obj)
       {
-       typedef std::pair<typename _Base::iterator, bool> __pair_type;
-       __pair_type __res = _Base::insert(std::move(__obj));
-       return iterator(__res.first, this);
+       __glibcxx_check_insert(__hint);
+       return iterator(_Base::insert(__hint.base(), std::move(__obj)), this);
       }
 
       void
@@ -461,16 +459,22 @@ namespace __debug
       { return iterator(_Base::insert(__obj), this); }
 
       iterator
-      insert(const_iterator, const value_type& __obj)
-      { return iterator(_Base::insert(__obj), this); }
+      insert(const_iterator __hint, const value_type& __obj)
+      {
+       __glibcxx_check_insert(__hint);
+       return iterator(_Base::insert(__hint.base(), __obj), this);
+      }
 
       iterator
       insert(value_type&& __obj)
       { return iterator(_Base::insert(std::move(__obj)), this); }
 
       iterator
-      insert(const_iterator, value_type&& __obj)
-      { return iterator(_Base::insert(std::move(__obj)), this); }
+      insert(const_iterator __hint, value_type&& __obj)
+      {
+       __glibcxx_check_insert(__hint);
+       return iterator(_Base::insert(__hint.base(), std::move(__obj)), this);
+      }
 
       void
       insert(std::initializer_list<value_type> __l)