Update of /cvsroot/boost/boost/boost/intrusive/detail
In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv23445/detail

Modified Files:
        assert.hpp config_begin.hpp parent_from_member.hpp 
        utilities.hpp 
Log Message:
New Interprocess version

Index: assert.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/intrusive/detail/assert.hpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- assert.hpp  23 Jun 2007 12:58:43 -0000      1.1
+++ assert.hpp  22 Jul 2007 14:08:31 -0000      1.2
@@ -22,14 +22,14 @@
 #define BOOST_INTRUSIVE_INVARIANT_ASSERT BOOST_ASSERT
 #endif
 
-#if !defined(BOOST_INTRUSIVE_SAFE_MODE_CONTAINER_INSERTION_ASSERT)
+#if !defined(BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT)
 #include <boost/assert.hpp>
-#define BOOST_INTRUSIVE_SAFE_MODE_CONTAINER_INSERTION_ASSERT BOOST_ASSERT
+#define BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT BOOST_ASSERT
 #endif
 
-#if !defined(BOOST_INTRUSIVE_SAFE_MODE_HOOK_DESTRUCTOR_ASSERT)
+#if !defined(BOOST_INTRUSIVE_SAFE_HOOK_DESTRUCTOR_ASSERT)
 #include <boost/assert.hpp>
-#define BOOST_INTRUSIVE_SAFE_MODE_HOOK_DESTRUCTOR_ASSERT BOOST_ASSERT
+#define BOOST_INTRUSIVE_SAFE_HOOK_DESTRUCTOR_ASSERT BOOST_ASSERT
 #endif
 
 #endif //BOOST_INTRUSIVE_DETAIL_ASSERT_HPP

Index: config_begin.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/intrusive/detail/config_begin.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- config_begin.hpp    23 Jun 2007 12:55:23 -0000      1.3
+++ config_begin.hpp    22 Jul 2007 14:08:31 -0000      1.4
@@ -12,8 +12,6 @@
 
 #ifndef BOOST_INTRUSIVE_SELECT_COMPILER_INCLUDED
 #ifndef BOOST_COMPILER_CONFIG
-//#include <boost/config/select_compiler_config.hpp>
-//#include BOOST_COMPILER_CONFIG
 #include <boost/config.hpp>
 #endif
 #define BOOST_INTRUSIVE_SELECT_COMPILER_INCLUDED

Index: parent_from_member.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/intrusive/detail/parent_from_member.hpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -d -r1.5 -r1.6
--- parent_from_member.hpp      23 Jun 2007 12:55:23 -0000      1.5
+++ parent_from_member.hpp      22 Jul 2007 14:08:31 -0000      1.6
@@ -14,32 +14,34 @@
 
 #include <boost/intrusive/detail/config_begin.hpp>
 #include <cstddef>
+
 namespace boost {
 namespace intrusive {
 namespace detail {
 
 template<class Parent, class Member>
-std::size_t offset_from_pointer_to_member(const Member Parent::* ptr_to_member)
+inline std::size_t offset_from_pointer_to_member(const Member Parent::* 
ptr_to_member)
 {
    //The implementation of a pointer to member is compiler dependent.
-   #if (defined(_MSC_VER)  || defined(__GNUC__) || defined(BOOST_INTEL) || 
defined(__HP_aCC))
+   #if (defined(_MSC_VER)  || defined(__GNUC__) || \
+        defined(BOOST_INTEL) || defined(__HP_aCC))
    //This works with gcc, msvc, ac++
-   return *(const std::size_t*)(const void*)&ptr_to_member;
+   return *(const std::ptrdiff_t*)(void*)&ptr_to_member;
    #else
    //This is the traditional C-front approach: __MWERKS__, __DMC__, __SUNPRO_CC
-   return *(const std::size_t*)(const void*)&ptr_to_member - 1;
+   return *(const std::ptrdiff_t*)(void*)&ptr_to_member - 1;
    #endif
 }
 
 template<class Parent, class Member>
-Parent *parent_from_member(Member *member, const Member Parent::* 
ptr_to_member)
+inline Parent *parent_from_member(Member *member, const Member Parent::* 
ptr_to_member)
 {
    return (Parent*)((char*)member - 
       offset_from_pointer_to_member(ptr_to_member));
 }
 
 template<class Parent, class Member>
-const Parent *parent_from_member(const Member *member, const Member Parent::* 
ptr_to_member)
+inline const Parent *parent_from_member(const Member *member, const Member 
Parent::* ptr_to_member)
 {
    return (const Parent*)((const char*)member - 
       offset_from_pointer_to_member(ptr_to_member));

Index: utilities.hpp
===================================================================
RCS file: /cvsroot/boost/boost/boost/intrusive/detail/utilities.hpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- utilities.hpp       23 Jun 2007 12:55:23 -0000      1.3
+++ utilities.hpp       22 Jul 2007 14:08:32 -0000      1.4
@@ -116,7 +116,7 @@
 };
 
 template<class T, class DerivationHookType, typename Tag>
-struct derivation_value_traits
+struct derivation_hook_value_traits
 {
    public:
    typedef typename DerivationHookType::node_traits                  
node_traits;
@@ -148,7 +148,7 @@
 
 
 template<class T, class MemberHookType, MemberHookType T::* P>
-struct member_value_traits
+struct member_hook_value_traits
 {
    public:
    typedef typename MemberHookType::node_traits                      
node_traits;
@@ -174,21 +174,22 @@
       return result->to_node_ptr();
    }
 
-   //Now let's be nasty. A pointer to member is usually implemented
-   //as an offset from the start of the class.
-   //get the offset in bytes and go
-   //backwards from n to the value subtracting
-   //the needed bytes.
    static pointer to_value_ptr(node_ptr n)
    {
-      return pointer(parent_from_member<value_type, MemberHookType>
-         ((MemberHookType*)detail::get_pointer(n), P));
+      return pointer
+      (
+         parent_from_member<value_type, MemberHookType>
+            (detail::get_pointer(MemberHookType::to_hook_ptr(n)), P)
+      ); 
    }
 
    static const_pointer to_value_ptr(const_node_ptr n)
    {
-      const_pointer(parent_from_member<value_type, MemberHookType>
-         ((const MemberHookType*)detail::get_pointer(n), P));
+      return const_pointer
+      (
+         parent_from_member<value_type, MemberHookType>
+            (detail::get_pointer(MemberHookType::to_hook_ptr(n)), P)
+      ); 
    }
 };
 
@@ -252,7 +253,7 @@
 
 template<class Container>
 void destructor_impl(Container &cont, dispatcher<safe_link>)
-{  (void)cont; 
BOOST_INTRUSIVE_SAFE_MODE_HOOK_DESTRUCTOR_ASSERT(!cont.is_linked());  }
+{  (void)cont; BOOST_INTRUSIVE_SAFE_HOOK_DESTRUCTOR_ASSERT(!cont.is_linked()); 
 }
 
 template<class Container>
 void destructor_impl(Container &cont, dispatcher<auto_unlink>)


-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
Boost-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/boost-cvs

Reply via email to