Blob Blame History Raw
diff --git a/include/boost/archive/archive_exception.hpp b/include/boost/archive/archive_exception.hpp
index 1159d27..fabcdb5 100644
--- a/boost/archive/archive_exception.hpp
+++ b/boost/archive/archive_exception.hpp
@@ -87,6 +87,7 @@ class BOOST_SYMBOL_VISIBLE archive_exception :
         const char * e1 = NULL,
         const char * e2 = NULL
     ) BOOST_NOEXCEPT;
+    BOOST_ARCHIVE_DECL archive_exception(archive_exception const &) BOOST_NOEXCEPT ;
     virtual BOOST_ARCHIVE_DECL ~archive_exception() BOOST_NOEXCEPT_OR_NOTHROW ;
     virtual BOOST_ARCHIVE_DECL const char * what() const BOOST_NOEXCEPT_OR_NOTHROW ;
 };
diff --git a/boost/archive/detail/basic_oarchive.hpp b/boost/archive/detail/basic_oarchive.hpp
index 702c560..03ad17b 100644
--- a/boost/archive/detail/basic_oarchive.hpp
+++ b/boost/archive/detail/basic_oarchive.hpp
@@ -61,9 +61,7 @@ class BOOST_SYMBOL_VISIBLE basic_oarchive :
 protected:
     BOOST_ARCHIVE_DECL basic_oarchive(unsigned int flags = 0);
     BOOST_ARCHIVE_DECL boost::archive::detail::helper_collection &
-    get_helper_collection(){
-        return *this;
-    }
+    get_helper_collection();
     // account for bogus gcc warning
     #if defined(__GNUC__)
     virtual
diff --git a/boost/archive/polymorphic_iarchive.hpp b/boost/archive/polymorphic_iarchive.hpp
index 7f19410..b465bb1 100644
--- a/boost/archive/polymorphic_iarchive.hpp
+++ b/boost/archive/polymorphic_iarchive.hpp
@@ -44,7 +44,7 @@ namespace serialization {
 namespace archive {
 namespace detail {
     class BOOST_ARCHIVE_DECL basic_iarchive;
-    class BOOST_ARCHIVE_DECL basic_iarchive;
+    class BOOST_ARCHIVE_DECL basic_iserializer;
 }
 
 class polymorphic_iarchive;
diff --git a/boost/archive/xml_archive_exception.hpp b/boost/archive/xml_archive_exception.hpp
index b07f9a0..82c53ef 100644
--- a/boost/archive/xml_archive_exception.hpp
+++ b/boost/archive/xml_archive_exception.hpp
@@ -45,6 +45,8 @@ class BOOST_SYMBOL_VISIBLE xml_archive_exception :
         const char * e1 = NULL,
         const char * e2 = NULL
     );
+    BOOST_ARCHIVE_DECL xml_archive_exception(xml_archive_exception const &) ;
+    virtual BOOST_ARCHIVE_DECL ~xml_archive_exception() BOOST_NOEXCEPT_OR_NOTHROW ;
 };
 
 }// namespace archive
diff --git a/libs/serialization/src/archive_exception.cpp b/libs/serialization/src/archive_exception.cpp
index b850f89..5ff4b5f 100644
--- a/libs/serialization/src/archive_exception.cpp
+++ b/libs/serialization/src/archive_exception.cpp
@@ -14,6 +14,7 @@
 
 #include <exception>
 #include <string>
+#include <cstring>
 
 #define BOOST_ARCHIVE_SOURCE
 #include <boost/archive/archive_exception.hpp>
@@ -21,6 +22,7 @@
 namespace boost {
 namespace archive {
 
+BOOST_ARCHIVE_DECL
 unsigned int
 archive_exception::append(unsigned int l, const char * a){
     while(l < (sizeof(m_buffer) - 1)){
@@ -109,13 +111,23 @@ archive_exception::archive_exception(
         break;
     }
 }
+
+BOOST_ARCHIVE_DECL
+archive_exception::archive_exception(archive_exception const & oth) BOOST_NOEXCEPT :
+	std::exception(oth),
+	code(oth.code)
+{
+	std::memcpy(m_buffer,oth.m_buffer,sizeof m_buffer);
+}
+
 BOOST_ARCHIVE_DECL
 archive_exception::~archive_exception() BOOST_NOEXCEPT_OR_NOTHROW {}
 
 BOOST_ARCHIVE_DECL const char *
-archive_exception::what( ) const BOOST_NOEXCEPT_OR_NOTHROW {
+archive_exception::what() const BOOST_NOEXCEPT_OR_NOTHROW {
     return m_buffer;
 }
+
 BOOST_ARCHIVE_DECL
 archive_exception::archive_exception() BOOST_NOEXCEPT :
     code(no_exception)
diff --git a/libs/serialization/src/basic_oarchive.cpp b/libs/serialization/src/basic_oarchive.cpp
index c99baeb..18522af 100644
--- a/libs/serialization/src/basic_oarchive.cpp
+++ b/libs/serialization/src/basic_oarchive.cpp
@@ -454,6 +454,11 @@ BOOST_ARCHIVE_DECL void
 basic_oarchive::end_preamble(){
 }
 
+BOOST_ARCHIVE_DECL helper_collection &
+basic_oarchive::get_helper_collection(){
+	return *this;
+}
+
 } // namespace detail
 } // namespace archive
 } // namespace boost
diff --git a/libs/serialization/src/xml_archive_exception.cpp b/libs/serialization/src/xml_archive_exception.cpp
index c1431e2..f4bf896 100644
--- a/libs/serialization/src/xml_archive_exception.cpp
+++ b/libs/serialization/src/xml_archive_exception.cpp
@@ -51,6 +51,14 @@ xml_archive_exception::xml_archive_exception(
             break;
         }
     }
+    
+BOOST_ARCHIVE_DECL
+xml_archive_exception::xml_archive_exception(xml_archive_exception const & oth) :
+ 	archive_exception(oth)
+	{
+	}
+	
+BOOST_ARCHIVE_DECL xml_archive_exception::~xml_archive_exception() BOOST_NOEXCEPT_OR_NOTHROW {}
 
 } // archive
 } // boost