Patchwork [v3] libstdc++/57065

login
register
mail settings
Submitter Paolo Carlini
Date April 25, 2013, 9:44 a.m.
Message ID <5178FAED.5030409@oracle.com>
Download mbox | patch
Permalink /patch/239443/
State New
Headers show

Comments

Paolo Carlini - April 25, 2013, 9:44 a.m.
Hi,

tested make check/check-debug on x86_64-linux, committed to mainline.

Thanks,
Paolo.

/////////////////////
2013-04-25  Paolo Carlini  <paolo.carlini@oracle.com>

	PR libstdc++/57065
	* include/debug/unordered_map (unordered_map, unordered_multimap):
	Fix default allocator type.
	* include/profile/unordered_map (unordered_map, unordered_multimap):
	Likewise.
	* include/bits/unordered_map.h: Fix comments.

Patch

Index: include/bits/unordered_map.h
===================================================================
--- include/bits/unordered_map.h	(revision 198275)
+++ include/bits/unordered_map.h	(working copy)
@@ -75,12 +75,13 @@ 
    *
    *  @ingroup unordered_associative_containers
    *
-   *  @tparam  _Key  Type of key objects.
-   *  @tparam  _Tp  Type of mapped objects.
-   *  @tparam  _Hash  Hashing function object type, defaults to hash<_Value>.
-   *  @tparam  _Pred  Predicate function object type, defaults
-   *                  to equal_to<_Value>.
-   *  @tparam  _Alloc  Allocator type, defaults to allocator<_Key>.
+   *  @tparam  _Key    Type of key objects.
+   *  @tparam  _Tp     Type of mapped objects.
+   *  @tparam  _Hash   Hashing function object type, defaults to hash<_Value>.
+   *  @tparam  _Pred   Predicate function object type, defaults
+   *                   to equal_to<_Value>.
+   *  @tparam  _Alloc  Allocator type, defaults to 
+   *                   std::allocator<std::pair<const _Key, _Tp>>.
    *
    *  Meets the requirements of a <a href="tables.html#65">container</a>, and
    *  <a href="tables.html#xx">unordered associative container</a>
@@ -786,12 +787,13 @@ 
    *
    *  @ingroup unordered_associative_containers
    *
-   *  @tparam  _Key  Type of key objects.
-   *  @tparam  _Tp  Type of mapped objects.
-   *  @tparam  _Hash  Hashing function object type, defaults to hash<_Value>.
-   *  @tparam  _Pred  Predicate function object type, defaults
-   *                  to equal_to<_Value>.
-   *  @tparam  _Alloc  Allocator type, defaults to allocator<_Key>.
+   *  @tparam  _Key    Type of key objects.
+   *  @tparam  _Tp     Type of mapped objects.
+   *  @tparam  _Hash   Hashing function object type, defaults to hash<_Value>.
+   *  @tparam  _Pred   Predicate function object type, defaults
+   *                   to equal_to<_Value>.
+   *  @tparam  _Alloc  Allocator type, defaults to
+   *                   std::allocator<std::pair<const _Key, _Tp>>.
    *
    *  Meets the requirements of a <a href="tables.html#65">container</a>, and
    *  <a href="tables.html#xx">unordered associative container</a>
Index: include/debug/unordered_map
===================================================================
--- include/debug/unordered_map	(revision 198275)
+++ include/debug/unordered_map	(working copy)
@@ -46,7 +46,7 @@ 
   template<typename _Key, typename _Tp,
 	   typename _Hash = std::hash<_Key>,
 	   typename _Pred = std::equal_to<_Key>,
-	   typename _Alloc = std::allocator<_Key> >
+	   typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
     class unordered_map
     : public _GLIBCXX_STD_C::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>,
       public __gnu_debug::_Safe_unordered_container<unordered_map<_Key, _Tp,
@@ -500,7 +500,7 @@ 
   template<typename _Key, typename _Tp,
 	   typename _Hash = std::hash<_Key>,
 	   typename _Pred = std::equal_to<_Key>,
-	   typename _Alloc = std::allocator<_Key> >
+	   typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
     class unordered_multimap
     : public _GLIBCXX_STD_C::unordered_multimap<_Key, _Tp, _Hash,
 						_Pred, _Alloc>,
Index: include/profile/unordered_map
===================================================================
--- include/profile/unordered_map	(revision 198275)
+++ include/profile/unordered_map	(working copy)
@@ -44,9 +44,9 @@ 
 {
   /// Class std::unordered_map wrapper with performance instrumentation.
   template<typename _Key, typename _Tp,
-	   typename _Hash  = std::hash<_Key>,
+	   typename _Hash = std::hash<_Key>,
 	   typename _Pred = std::equal_to<_Key>,
-	   typename _Alloc =  std::allocator<_Key> >
+	   typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
     class unordered_map
     : public _GLIBCXX_STD_BASE
     {
@@ -346,9 +346,9 @@ 
 
   /// Class std::unordered_multimap wrapper with performance instrumentation.
   template<typename _Key, typename _Tp,
-	   typename _Hash  = std::hash<_Key>,
+	   typename _Hash = std::hash<_Key>,
 	   typename _Pred = std::equal_to<_Key>,
-	   typename _Alloc =  std::allocator<_Key> >
+	   typename _Alloc = std::allocator<std::pair<const _Key, _Tp> > >
     class unordered_multimap
     : public _GLIBCXX_STD_BASE
     {