summaryrefslogtreecommitdiff
path: root/libs/serialization/src
diff options
context:
space:
mode:
Diffstat (limited to 'libs/serialization/src')
-rw-r--r--libs/serialization/src/basic_archive.cpp6
-rw-r--r--libs/serialization/src/basic_iarchive.cpp10
-rw-r--r--libs/serialization/src/basic_oarchive.cpp4
-rw-r--r--libs/serialization/src/basic_xml_grammar.ipp2
-rw-r--r--libs/serialization/src/extended_type_info.cpp2
-rw-r--r--libs/serialization/src/extended_type_info_typeid.cpp2
6 files changed, 11 insertions, 15 deletions
diff --git a/libs/serialization/src/basic_archive.cpp b/libs/serialization/src/basic_archive.cpp
index 8baf17831..3f6c3e353 100644
--- a/libs/serialization/src/basic_archive.cpp
+++ b/libs/serialization/src/basic_archive.cpp
@@ -70,11 +70,13 @@ BOOST_ARCHIVE_SIGNATURE(){
// 8 - Boost 1.44
// separated version_type into library_version_type and class_version_type
// changed version_type to be stored as 8 bits.
-// 10- fixed base64 output/input.
+// 10- fixed base64 output/input.
+// 11- not changes
+// 12- improved serialization of collections
BOOST_ARCHIVE_DECL(library_version_type)
BOOST_ARCHIVE_VERSION(){
- return library_version_type(11);
+ return library_version_type(12);
}
} // namespace archive
diff --git a/libs/serialization/src/basic_iarchive.cpp b/libs/serialization/src/basic_iarchive.cpp
index 3a2469006..9e25092ae 100644
--- a/libs/serialization/src/basic_iarchive.cpp
+++ b/libs/serialization/src/basic_iarchive.cpp
@@ -183,7 +183,6 @@ class basic_iarchive_impl {
m_archive_library_version(BOOST_ARCHIVE_VERSION()),
m_flags(flags)
{}
- ~basic_iarchive_impl(){}
void set_library_version(library_version_type archive_library_version){
m_archive_library_version = archive_library_version;
}
@@ -228,7 +227,6 @@ class basic_iarchive_impl {
const basic_pointer_iserializer * (*finder)(
const boost::serialization::extended_type_info & type
)
-
);
};
@@ -252,8 +250,8 @@ basic_iarchive_impl::reset_object_address(
// but the code may work anyway. Naturally, a bad practice on the part
// of the programmer but we can't detect it - as above. So maybe we
// can save a few more people from themselves as above.
- object_id_type i;
- for(i = m_moveable_objects.recent; i < m_moveable_objects.end; ++i){
+ object_id_type i = m_moveable_objects.recent;
+ for(; i < m_moveable_objects.end; ++i){
if(old_address == object_id_vector[i].address)
break;
}
@@ -532,9 +530,7 @@ basic_iarchive::basic_iarchive(unsigned int flags) :
BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY())
basic_iarchive::~basic_iarchive()
-{
- delete pimpl;
-}
+{}
BOOST_ARCHIVE_DECL(void)
basic_iarchive::set_library_version(library_version_type archive_library_version){
diff --git a/libs/serialization/src/basic_oarchive.cpp b/libs/serialization/src/basic_oarchive.cpp
index 840955b78..2ce98c6d5 100644
--- a/libs/serialization/src/basic_oarchive.cpp
+++ b/libs/serialization/src/basic_oarchive.cpp
@@ -417,9 +417,7 @@ basic_oarchive::basic_oarchive(unsigned int flags)
BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY())
basic_oarchive::~basic_oarchive()
-{
- delete pimpl;
-}
+{}
BOOST_ARCHIVE_DECL(void)
basic_oarchive::save_object(
diff --git a/libs/serialization/src/basic_xml_grammar.ipp b/libs/serialization/src/basic_xml_grammar.ipp
index 011bba735..28be525ca 100644
--- a/libs/serialization/src/basic_xml_grammar.ipp
+++ b/libs/serialization/src/basic_xml_grammar.ipp
@@ -457,7 +457,7 @@ void basic_xml_grammar<CharType>::init(IStream & is){
template<class CharType>
void basic_xml_grammar<CharType>::windup(IStream & is){
- if(is.fail())
+ if(is.fail() || is.eof())
return;
// uh-oh - don't throw exception from code called by a destructor !
// so just ignore any failure.
diff --git a/libs/serialization/src/extended_type_info.cpp b/libs/serialization/src/extended_type_info.cpp
index 2efbefc8f..48bbc5627 100644
--- a/libs/serialization/src/extended_type_info.cpp
+++ b/libs/serialization/src/extended_type_info.cpp
@@ -25,7 +25,7 @@
namespace std{ using ::strcmp; }
#endif
-#include <boost/detail/no_exceptions_support.hpp>
+#include <boost/core/no_exceptions_support.hpp>
#include <boost/serialization/singleton.hpp>
#include <boost/serialization/force_include.hpp>
diff --git a/libs/serialization/src/extended_type_info_typeid.cpp b/libs/serialization/src/extended_type_info_typeid.cpp
index 463287aff..8d970309e 100644
--- a/libs/serialization/src/extended_type_info_typeid.cpp
+++ b/libs/serialization/src/extended_type_info_typeid.cpp
@@ -15,7 +15,7 @@
#include <typeinfo>
#include <cstddef> // NULL
-#include <boost/detail/no_exceptions_support.hpp>
+#include <boost/core/no_exceptions_support.hpp>
#include <boost/serialization/singleton.hpp>