$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r54984 - trunk/boost/archive/detail
From: ramey_at_[hidden]
Date: 2009-07-16 17:17:16
Author: ramey
Date: 2009-07-16 17:17:15 EDT (Thu, 16 Jul 2009)
New Revision: 54984
URL: http://svn.boost.org/trac/boost/changeset/54984
Log:
Fix test dll exported
Text files modified: 
   trunk/boost/archive/detail/archive_serializer_map.hpp |    17 +++++++++++++----                       
   trunk/boost/archive/detail/basic_serializer_map.hpp   |    12 ++++++------                            
   trunk/boost/archive/detail/common_iarchive.hpp        |     4 +---                                    
   trunk/boost/archive/detail/iserializer.hpp            |    12 ++----------                            
   trunk/boost/archive/detail/oserializer.hpp            |    12 ++----------                            
   5 files changed, 24 insertions(+), 33 deletions(-)
Modified: trunk/boost/archive/detail/archive_serializer_map.hpp
==============================================================================
--- trunk/boost/archive/detail/archive_serializer_map.hpp	(original)
+++ trunk/boost/archive/detail/archive_serializer_map.hpp	2009-07-16 17:17:15 EDT (Thu, 16 Jul 2009)
@@ -21,7 +21,8 @@
 // basic_serializer_map so we can have a one map / archive type. 
 
 #include <boost/config.hpp>
-#include <boost/archive/detail/basic_serializer_map.hpp>
+#include <boost/archive/detail/auto_link_archive.hpp>
+#include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
 namespace boost {
 
@@ -35,12 +36,20 @@
 class basic_serializer;
 
 template<class Archive>
-class archive_serializer_map : 
-    public basic_serializer_map 
-{};
+class BOOST_ARCHIVE_OR_WARCHIVE_DECL(BOOST_PP_EMPTY()) archive_serializer_map 
+{
+public:
+    static bool insert(const basic_serializer * bs);
+    static void erase(const basic_serializer * bs);
+    static const basic_serializer * find(
+        const boost::serialization::extended_type_info & type_
+    );
+};
 
 } // namespace detail
 } // namespace archive
 } // namespace boost
 
+#include <boost/archive/detail/abi_suffix.hpp> // must be the last header
+
 #endif //BOOST_ARCHIVE_SERIALIZER_MAP_HPP
Modified: trunk/boost/archive/detail/basic_serializer_map.hpp
==============================================================================
--- trunk/boost/archive/detail/basic_serializer_map.hpp	(original)
+++ trunk/boost/archive/detail/basic_serializer_map.hpp	2009-07-16 17:17:15 EDT (Thu, 16 Jul 2009)
@@ -19,11 +19,11 @@
 #include <set>
 
 #include <boost/config.hpp>
-#include <boost/utility.hpp>
 #include <boost/archive/detail/auto_link_archive.hpp>
-
 #include <boost/archive/detail/abi_prefix.hpp> // must be the last header
 
+#include <boost/utility.hpp>
+
 namespace boost { 
 namespace serialization {
     class extended_type_info;
@@ -32,9 +32,9 @@
 namespace archive {
 namespace detail {
 
-class /*BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY())*/ basic_serializer;
+class basic_serializer;
 
-class BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY()) basic_serializer_map : public
+class BOOST_ARCHIVE_OR_WARCHIVE_DECL(BOOST_PP_EMPTY()) basic_serializer_map : public
     boost::noncopyable
 {
     struct type_info_pointer_compare
@@ -47,10 +47,10 @@
     map_type m_map;
 public:
     bool insert(const basic_serializer * bs);
+    void erase(const basic_serializer * bs);
     const basic_serializer * find(
         const boost::serialization::extended_type_info & type_
     ) const;
-    void erase(basic_serializer * bs);
 private:
     // cw 8.3 requires this
     basic_serializer_map& operator=(basic_serializer_map const&);
@@ -60,6 +60,6 @@
 } // namespace archive
 } // namespace boost
 
-#include <boost/archive/detail/abi_suffix.hpp> // pops abi_suffix.hpp pragmas
+#include <boost/archive/detail/abi_suffix.hpp> // must be the last header
 
 #endif // BOOST_SERIALIZER_MAP_HPP
Modified: trunk/boost/archive/detail/common_iarchive.hpp
==============================================================================
--- trunk/boost/archive/detail/common_iarchive.hpp	(original)
+++ trunk/boost/archive/detail/common_iarchive.hpp	2009-07-16 17:17:15 EDT (Thu, 16 Jul 2009)
@@ -73,9 +73,7 @@
     virtual const basic_pointer_iserializer * 
     find(const boost::serialization::extended_type_info & eti) const {
             return static_cast<const basic_pointer_iserializer *>(
-            boost::serialization::singleton<
-    		    archive_serializer_map<Archive>
-    	    >::get_const_instance().find(eti)
+            archive_serializer_map<Archive>::find(eti)
         );
     }
 };
Modified: trunk/boost/archive/detail/iserializer.hpp
==============================================================================
--- trunk/boost/archive/detail/iserializer.hpp	(original)
+++ trunk/boost/archive/detail/iserializer.hpp	2009-07-16 17:17:15 EDT (Thu, 16 Jul 2009)
@@ -315,20 +315,12 @@
     boost::serialization::singleton<
         iserializer<Archive, T>
     >::get_mutable_instance().set_bpis(this);
-    boost::serialization::singleton<
-        archive_serializer_map<Archive>
-    >::get_mutable_instance().insert(this);
+    archive_serializer_map<Archive>::insert(this);
 }
 
 template<class Archive, class T>
 pointer_iserializer<Archive, T>::~pointer_iserializer(){
-    if(boost::serialization::singleton<
-        archive_serializer_map<Archive>
-    >::is_destroyed())
-        return;
-    boost::serialization::singleton<
-        archive_serializer_map<Archive>
-    >::get_mutable_instance().erase(this);
+    archive_serializer_map<Archive>::erase(this);
 }
 
 template<class Archive, class T>
Modified: trunk/boost/archive/detail/oserializer.hpp
==============================================================================
--- trunk/boost/archive/detail/oserializer.hpp	(original)
+++ trunk/boost/archive/detail/oserializer.hpp	2009-07-16 17:17:15 EDT (Thu, 16 Jul 2009)
@@ -195,20 +195,12 @@
     boost::serialization::singleton<
         oserializer<Archive, T> 
     >::get_mutable_instance().set_bpos(this);
-    boost::serialization::singleton<
-        archive_serializer_map<Archive>
-    >::get_mutable_instance().insert(this);
+    archive_serializer_map<Archive>::insert(this);
 }
 
 template<class Archive, class T>
 pointer_oserializer<Archive, T>::~pointer_oserializer(){
-    if(boost::serialization::singleton<
-            archive_serializer_map<Archive>
-    >::is_destroyed())
-        return;
-    boost::serialization::singleton<
-        archive_serializer_map<Archive>
-    >::get_mutable_instance().erase(this);
+    archive_serializer_map<Archive>::erase(this);
 }
 
 template<class Archive, class T>