$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: daniel_james_at_[hidden]
Date: 2007-12-18 17:58:13
Author: danieljames
Date: 2007-12-18 17:58:12 EST (Tue, 18 Dec 2007)
New Revision: 42155
URL: http://svn.boost.org/trac/boost/changeset/42155
Log:
Add a helper function for creating null pointers.
Text files modified: 
   sandbox/unordered/boost/unordered/detail/allocator.hpp       |     6 ++++++                                  
   sandbox/unordered/boost/unordered/detail/hash_table_impl.hpp |    11 +++--------                             
   2 files changed, 9 insertions(+), 8 deletions(-)
Modified: sandbox/unordered/boost/unordered/detail/allocator.hpp
==============================================================================
--- sandbox/unordered/boost/unordered/detail/allocator.hpp	(original)
+++ sandbox/unordered/boost/unordered/detail/allocator.hpp	2007-12-18 17:58:12 EST (Tue, 18 Dec 2007)
@@ -42,6 +42,9 @@
 #if !BOOST_WORKAROUND(BOOST_MSVC, < 1300)
         template <class T>
         inline void reset(T& x) { x  = T(); }
+
+        template <class Ptr>
+        inline Ptr null_ptr() { return Ptr(); }
 #else
         template <class T>
         inline void reset_impl(T& x, ...) { x  = T(); }
@@ -49,6 +52,9 @@
         inline void reset_impl(T*& x, int) { x  = 0; }
         template <class T>
         inline void reset(T& x) { reset_impl(x); }
+
+        template <class Ptr>
+        inline Ptr null_ptr() { Ptr x; reset(x); return x; }
 #endif
 
         // Work around for Microsoft's ETI bug.
Modified: sandbox/unordered/boost/unordered/detail/hash_table_impl.hpp
==============================================================================
--- sandbox/unordered/boost/unordered/detail/hash_table_impl.hpp	(original)
+++ sandbox/unordered/boost/unordered/detail/hash_table_impl.hpp	2007-12-18 17:58:12 EST (Tue, 18 Dec 2007)
@@ -424,9 +424,7 @@
 
             link_ptr end(size_type) const
             {
-                link_ptr ptr = link_ptr();
-                BOOST_HASH_MSVC_RESET_PTR(ptr);
-                return ptr;
+                return unordered_detail::null_ptr<link_ptr>();
             }
 
             link_ptr begin(bucket_ptr b) const
@@ -658,11 +656,8 @@
             {
                 // If split is at the beginning of the group then there's
                 // nothing to split.
-                if(prev_in_group(split)->next_ != split) {
-                    link_ptr ptr = link_ptr();
-                    BOOST_HASH_MSVC_RESET_PTR(ptr);
-                    return ptr;
-                }
+                if(prev_in_group(split)->next_ != split)
+                    return unordered_detail::null_ptr<link_ptr>();
 
                 // Find the start of the group.
                 link_ptr start = split;