summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2014-10-19 20:22:58 (GMT)
committerTobias Markmann <tm@ayena.de>2014-10-20 13:49:33 (GMT)
commit6b22dfcf59474dd016a0355a3102a1dd3692d92c (patch)
tree2b1fd33be433a91e81fee84fdc2bf1b52575d934 /3rdParty/Boost/src/libs/serialization
parent38b0cb785fea8eae5e48fae56440695fdfd10ee1 (diff)
downloadswift-6b22dfcf59474dd016a0355a3102a1dd3692d92c.zip
swift-6b22dfcf59474dd016a0355a3102a1dd3692d92c.tar.bz2
Update Boost in 3rdParty to version 1.56.0.
This updates Boost in our 3rdParty directory to version 1.56.0. Updated our update.sh script to stop on error. Changed error reporting in SwiftTools/CrashReporter.cpp to SWIFT_LOG due to missing include of <iostream> with newer Boost. Change-Id: I4b35c77de951333979a524097f35f5f83d325edc
Diffstat (limited to '3rdParty/Boost/src/libs/serialization')
-rw-r--r--3rdParty/Boost/src/libs/serialization/src/archive_exception.cpp69
-rw-r--r--3rdParty/Boost/src/libs/serialization/src/basic_archive.cpp3
-rw-r--r--3rdParty/Boost/src/libs/serialization/src/basic_iarchive.cpp110
-rw-r--r--3rdParty/Boost/src/libs/serialization/src/basic_oarchive.cpp6
-rw-r--r--3rdParty/Boost/src/libs/serialization/src/basic_serializer_map.cpp5
-rw-r--r--3rdParty/Boost/src/libs/serialization/src/binary_iarchive.cpp14
-rw-r--r--3rdParty/Boost/src/libs/serialization/src/binary_wiarchive.cpp13
-rw-r--r--3rdParty/Boost/src/libs/serialization/src/shared_ptr_helper.cpp97
-rw-r--r--3rdParty/Boost/src/libs/serialization/src/text_iarchive.cpp4
-rw-r--r--3rdParty/Boost/src/libs/serialization/src/text_wiarchive.cpp4
-rw-r--r--3rdParty/Boost/src/libs/serialization/src/utf8_codecvt_facet.cpp21
-rw-r--r--3rdParty/Boost/src/libs/serialization/src/xml_archive_exception.cpp12
-rw-r--r--3rdParty/Boost/src/libs/serialization/src/xml_iarchive.cpp4
-rw-r--r--3rdParty/Boost/src/libs/serialization/src/xml_wiarchive.cpp4
14 files changed, 144 insertions, 222 deletions
diff --git a/3rdParty/Boost/src/libs/serialization/src/archive_exception.cpp b/3rdParty/Boost/src/libs/serialization/src/archive_exception.cpp
index 50d326a..d06303f 100644
--- a/3rdParty/Boost/src/libs/serialization/src/archive_exception.cpp
+++ b/3rdParty/Boost/src/libs/serialization/src/archive_exception.cpp
@@ -13,7 +13,7 @@
#endif
#include <exception>
-#include <boost/assert.hpp>
+//#include <boost/assert.hpp>
#include <string>
#define BOOST_ARCHIVE_SOURCE
@@ -22,6 +22,18 @@
namespace boost {
namespace archive {
+unsigned int
+archive_exception::append(unsigned int l, const char * a){
+ while(l < (sizeof(m_buffer) - 1)){
+ char c = *a++;
+ if('\0' == c)
+ break;
+ m_buffer[l++] = c;
+ }
+ m_buffer[l] = '\0';
+ return l;
+}
+
BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY())
archive_exception::archive_exception(
exception_code c,
@@ -30,80 +42,81 @@ archive_exception::archive_exception(
) :
code(c)
{
- m_msg = "programming error";
+ unsigned int length = 0;
switch(code){
case no_exception:
- m_msg = "uninitialized exception";
+ length = append(length, "uninitialized exception");
break;
case unregistered_class:
- m_msg = "unregistered class";
+ length = append(length, "unregistered class");
if(NULL != e1){
- m_msg += " - ";
- m_msg += e1;
+ length = append(length, " - ");
+ length = append(length, e1);
}
break;
case invalid_signature:
- m_msg = "invalid signature";
+ length = append(length, "invalid signature");
break;
case unsupported_version:
- m_msg = "unsupported version";
+ length = append(length, "unsupported version");
break;
case pointer_conflict:
- m_msg = "pointer conflict";
+ length = append(length, "pointer conflict");
break;
case incompatible_native_format:
- m_msg = "incompatible native format";
+ length = append(length, "incompatible native format");
if(NULL != e1){
- m_msg += " - ";
- m_msg += e1;
+ length = append(length, " - ");
+ length = append(length, e1);
}
break;
case array_size_too_short:
- m_msg = "array size too short";
+ length = append(length, "array size too short");
break;
case input_stream_error:
- m_msg = "input stream error";
+ length = append(length, "input stream error");
break;
case invalid_class_name:
- m_msg = "class name too long";
+ length = append(length, "class name too long");
break;
case unregistered_cast:
- m_msg = "unregistered void cast ";
- m_msg += (NULL != e1) ? e1 : "?";
- m_msg += "<-";
- m_msg += (NULL != e2) ? e2 : "?";
+ length = append(length, "unregistered void cast ");
+ length = append(length, (NULL != e1) ? e1 : "?");
+ length = append(length, "<-");
+ length = append(length, (NULL != e2) ? e2 : "?");
break;
case unsupported_class_version:
- m_msg = "class version ";
- m_msg += (NULL != e1) ? e1 : "<unknown class>";
+ length = append(length, "class version ");
+ length = append(length, (NULL != e1) ? e1 : "<unknown class>");
break;
case other_exception:
// if get here - it indicates a derived exception
// was sliced by passing by value in catch
- m_msg = "unknown derived exception";
+ length = append(length, "unknown derived exception");
break;
case multiple_code_instantiation:
- m_msg = "code instantiated in more than one module";
+ length = append(length, "code instantiated in more than one module");
if(NULL != e1){
- m_msg += " - ";
- m_msg += e1;
+ length = append(length, " - ");
+ length = append(length, e1);
}
break;
case output_stream_error:
- m_msg = "output stream error";
+ length = append(length, "output stream error");
break;
default:
BOOST_ASSERT(false);
+ length = append(length, "programming error");
break;
}
}
BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY())
-archive_exception::~archive_exception() throw () {}
+archive_exception::~archive_exception() throw() {}
BOOST_ARCHIVE_DECL(const char *)
archive_exception::what( ) const throw()
{
- return m_msg.c_str();
+ return m_buffer;
}
BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY())
archive_exception::archive_exception() :
diff --git a/3rdParty/Boost/src/libs/serialization/src/basic_archive.cpp b/3rdParty/Boost/src/libs/serialization/src/basic_archive.cpp
index 23e5702..8baf178 100644
--- a/3rdParty/Boost/src/libs/serialization/src/basic_archive.cpp
+++ b/3rdParty/Boost/src/libs/serialization/src/basic_archive.cpp
@@ -70,10 +70,11 @@ 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.
BOOST_ARCHIVE_DECL(library_version_type)
BOOST_ARCHIVE_VERSION(){
- return library_version_type(9);
+ return library_version_type(11);
}
} // namespace archive
diff --git a/3rdParty/Boost/src/libs/serialization/src/basic_iarchive.cpp b/3rdParty/Boost/src/libs/serialization/src/basic_iarchive.cpp
index e9baddd..3a24690 100644
--- a/3rdParty/Boost/src/libs/serialization/src/basic_iarchive.cpp
+++ b/3rdParty/Boost/src/libs/serialization/src/basic_iarchive.cpp
@@ -81,9 +81,18 @@ class basic_iarchive_impl {
//////////////////////////////////////////////////////////////////////
// used to implement the reset_object_address operation.
- object_id_type moveable_objects_start;
- object_id_type moveable_objects_end;
- object_id_type moveable_objects_recent;
+ struct moveable_objects {
+ object_id_type start;
+ object_id_type end;
+ object_id_type recent;
+ bool is_pointer;
+ moveable_objects() :
+ start(0),
+ end(0),
+ recent(0),
+ is_pointer(false)
+ {}
+ } m_moveable_objects;
void reset_object_address(
const void * new_address,
@@ -159,19 +168,20 @@ class basic_iarchive_impl {
//////////////////////////////////////////////////////////////////////
// address of the most recent object serialized as a poiner
// whose data itself is now pending serialization
- void * pending_object;
- const basic_iserializer * pending_bis;
- version_type pending_version;
+ struct pending {
+ void * object;
+ const basic_iserializer * bis;
+ version_type version;
+ pending() :
+ object(NULL),
+ bis(NULL),
+ version(0)
+ {}
+ } m_pending;
basic_iarchive_impl(unsigned int flags) :
m_archive_library_version(BOOST_ARCHIVE_VERSION()),
- m_flags(flags),
- moveable_objects_start(0),
- moveable_objects_end(0),
- moveable_objects_recent(0),
- pending_object(NULL),
- pending_bis(NULL),
- pending_version(0)
+ m_flags(flags)
{}
~basic_iarchive_impl(){}
void set_library_version(library_version_type archive_library_version){
@@ -200,7 +210,7 @@ class basic_iarchive_impl {
//public:
void
next_object_pointer(void * t){
- pending_object = t;
+ m_pending.object = t;
}
void delete_created_pointers();
class_id_type register_type(
@@ -224,9 +234,12 @@ class basic_iarchive_impl {
inline void
basic_iarchive_impl::reset_object_address(
- const void * new_address,
- const void *old_address
+ void const * const new_address,
+ void const * const old_address
){
+ if(m_moveable_objects.is_pointer)
+ return;
+
// this code handles a couple of situations.
// a) where reset_object_address is applied to an untracked object.
// In such a case the call is really superfluous and its really an
@@ -240,18 +253,18 @@ basic_iarchive_impl::reset_object_address(
// 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 = moveable_objects_recent; i < moveable_objects_end; ++i){
+ for(i = m_moveable_objects.recent; i < m_moveable_objects.end; ++i){
if(old_address == object_id_vector[i].address)
break;
}
- for(; i < moveable_objects_end; ++i){
-
+ for(; i < m_moveable_objects.end; ++i){
+ void const * const this_address = object_id_vector[i].address;
// calculate displacement from this level
// warning - pointer arithmetic on void * is in herently non-portable
// but expected to work on all platforms in current usage
- if(object_id_vector[i].address > old_address){
+ if(this_address > old_address){
std::size_t member_displacement
- = reinterpret_cast<std::size_t>(object_id_vector[i].address)
+ = reinterpret_cast<std::size_t>(this_address)
- reinterpret_cast<std::size_t>(old_address);
object_id_vector[i].address = reinterpret_cast<void *>(
reinterpret_cast<std::size_t>(new_address) + member_displacement
@@ -260,7 +273,7 @@ basic_iarchive_impl::reset_object_address(
else{
std::size_t member_displacement
= reinterpret_cast<std::size_t>(old_address)
- - reinterpret_cast<std::size_t>(object_id_vector[i].address);
+ - reinterpret_cast<std::size_t>(this_address);
object_id_vector[i].address = reinterpret_cast<void *>(
reinterpret_cast<std::size_t>(new_address) - member_displacement
);
@@ -356,10 +369,12 @@ basic_iarchive_impl::load_object(
void * t,
const basic_iserializer & bis
){
+ m_moveable_objects.is_pointer = false;
+ serialization::state_saver<bool> ss_is_pointer(m_moveable_objects.is_pointer);
// if its been serialized through a pointer and the preamble's been done
- if(t == pending_object && & bis == pending_bis){
+ if(t == m_pending.object && & bis == m_pending.bis){
// read data
- (bis.load_object_data)(ar, t, pending_version);
+ (bis.load_object_data)(ar, t, m_pending.version);
return;
}
@@ -370,13 +385,13 @@ basic_iarchive_impl::load_object(
load_preamble(ar, co);
// save the current move stack position in case we want to truncate it
- boost::serialization::state_saver<object_id_type> w(moveable_objects_start);
+ boost::serialization::state_saver<object_id_type> ss_start(m_moveable_objects.start);
// note: extra line used to evade borland issue
const bool tracking = co.tracking_level;
object_id_type this_id;
- moveable_objects_start =
+ m_moveable_objects.start =
this_id = object_id_type(object_id_vector.size());
// if we tracked this object when the archive was saved
@@ -388,11 +403,11 @@ basic_iarchive_impl::load_object(
// add a new enty into the tracking list
object_id_vector.push_back(aobject(t, cid));
// and add an entry for this object
- moveable_objects_end = object_id_type(object_id_vector.size());
+ m_moveable_objects.end = object_id_type(object_id_vector.size());
}
// read data
(bis.load_object_data)(ar, t, co.file_version);
- moveable_objects_recent = this_id;
+ m_moveable_objects.recent = this_id;
}
inline const basic_pointer_iserializer *
@@ -403,8 +418,10 @@ basic_iarchive_impl::load_pointer(
const basic_pointer_iserializer * (*finder)(
const boost::serialization::extended_type_info & type_
)
-
){
+ m_moveable_objects.is_pointer = true;
+ serialization::state_saver<bool> w(m_moveable_objects.is_pointer);
+
class_id_type cid;
load(ar, cid);
@@ -434,10 +451,10 @@ basic_iarchive_impl::load_pointer(
bpis_ptr = (*finder)(*eti);
}
BOOST_ASSERT(NULL != bpis_ptr);
- class_id_type new_cid = register_type(bpis_ptr->get_basic_serializer());
+ // class_id_type new_cid = register_type(bpis_ptr->get_basic_serializer());
+ BOOST_VERIFY(register_type(bpis_ptr->get_basic_serializer()) == cid);
int i = cid;
cobject_id_vector[i].bpis_ptr = bpis_ptr;
- BOOST_ASSERT(new_cid == cid);
}
int i = cid;
cobject_id & co = cobject_id_vector[i];
@@ -453,38 +470,41 @@ basic_iarchive_impl::load_pointer(
return bpis_ptr;
// save state
- serialization::state_saver<object_id_type> w_start(moveable_objects_start);
+ serialization::state_saver<object_id_type> w_start(m_moveable_objects.start);
+
+ // allocate space on the heap for the object - to be constructed later
+ t = bpis_ptr->heap_allocation();
+ BOOST_ASSERT(NULL != t);
if(! tracking){
bpis_ptr->load_object_ptr(ar, t, co.file_version);
}
else{
- serialization::state_saver<void *> x(pending_object);
- serialization::state_saver<const basic_iserializer *> y(pending_bis);
- serialization::state_saver<version_type> z(pending_version);
+ serialization::state_saver<void *> x(m_pending.object);
+ serialization::state_saver<const basic_iserializer *> y(m_pending.bis);
+ serialization::state_saver<version_type> z(m_pending.version);
- pending_bis = & bpis_ptr->get_basic_serializer();
- pending_version = co.file_version;
+ m_pending.bis = & bpis_ptr->get_basic_serializer();
+ m_pending.version = co.file_version;
// predict next object id to be created
const unsigned int ui = object_id_vector.size();
- serialization::state_saver<object_id_type> w_end(moveable_objects_end);
+ serialization::state_saver<object_id_type> w_end(m_moveable_objects.end);
- // because the following operation could move the items
- // don't use co after this
+
// add to list of serialized objects so that we can properly handle
// cyclic strucures
object_id_vector.push_back(aobject(t, cid));
+ // remember that that the address of these elements could change
+ // when we make another call so don't use the address
bpis_ptr->load_object_ptr(
- ar,
- object_id_vector[ui].address,
- co.file_version
+ ar,
+ t,
+ m_pending.version
);
- t = object_id_vector[ui].address;
object_id_vector[ui].loaded_as_pointer = true;
- BOOST_ASSERT(NULL != t);
}
return bpis_ptr;
diff --git a/3rdParty/Boost/src/libs/serialization/src/basic_oarchive.cpp b/3rdParty/Boost/src/libs/serialization/src/basic_oarchive.cpp
index 33f33f8..840955b 100644
--- a/3rdParty/Boost/src/libs/serialization/src/basic_oarchive.cpp
+++ b/3rdParty/Boost/src/libs/serialization/src/basic_oarchive.cpp
@@ -331,6 +331,12 @@ basic_oarchive_impl::save_pointer(
// makes a copy when passing a non-const to a const. This
// is permitted by the standard but rarely seen in practice
const class_name_type cn(key);
+ if(cn.size() > (BOOST_SERIALIZATION_MAX_KEY_SIZE - 1))
+ boost::serialization::throw_exception(
+ boost::archive::archive_exception(
+ boost::archive::archive_exception::
+ invalid_class_name)
+ );
// write out the external class identifier
ar.vsave(cn);
}
diff --git a/3rdParty/Boost/src/libs/serialization/src/basic_serializer_map.cpp b/3rdParty/Boost/src/libs/serialization/src/basic_serializer_map.cpp
index 80e805f..7df0b3d 100644
--- a/3rdParty/Boost/src/libs/serialization/src/basic_serializer_map.cpp
+++ b/3rdParty/Boost/src/libs/serialization/src/basic_serializer_map.cpp
@@ -43,11 +43,12 @@ basic_serializer_map::type_info_pointer_compare::operator()(
BOOST_ARCHIVE_DECL(bool)
basic_serializer_map::insert(const basic_serializer * bs){
// attempt to insert serializer into it's map
- const std::pair<map_type::iterator, bool> result =
- m_map.insert(bs);
// the following is commented out - rather than being just
// deleted as a reminder not to try this.
+ // const std::pair<map_type::iterator, bool> result =
+ m_map.insert(bs);
+
// At first it seemed like a good idea. It enforced the
// idea that a type be exported from at most one code module
// (DLL or mainline). This would enforce a "one definition rule"
diff --git a/3rdParty/Boost/src/libs/serialization/src/binary_iarchive.cpp b/3rdParty/Boost/src/libs/serialization/src/binary_iarchive.cpp
index 7bb0435..c1117e9 100644
--- a/3rdParty/Boost/src/libs/serialization/src/binary_iarchive.cpp
+++ b/3rdParty/Boost/src/libs/serialization/src/binary_iarchive.cpp
@@ -22,20 +22,6 @@ namespace boost {
namespace archive {
// explicitly instantiate for this type of stream
-template class detail::archive_serializer_map<naked_binary_iarchive>;
-template class basic_binary_iprimitive<
- naked_binary_iarchive,
- std::istream::char_type,
- std::istream::traits_type
->;
-template class basic_binary_iarchive<naked_binary_iarchive> ;
-template class binary_iarchive_impl<
- naked_binary_iarchive,
- std::istream::char_type,
- std::istream::traits_type
->;
-
-// explicitly instantiate for this type of stream
template class detail::archive_serializer_map<binary_iarchive>;
template class basic_binary_iprimitive<
binary_iarchive,
diff --git a/3rdParty/Boost/src/libs/serialization/src/binary_wiarchive.cpp b/3rdParty/Boost/src/libs/serialization/src/binary_wiarchive.cpp
index a6135c8..720d469 100644
--- a/3rdParty/Boost/src/libs/serialization/src/binary_wiarchive.cpp
+++ b/3rdParty/Boost/src/libs/serialization/src/binary_wiarchive.cpp
@@ -26,19 +26,6 @@
namespace boost {
namespace archive {
-template class detail::archive_serializer_map<naked_binary_wiarchive>;
-template class basic_binary_iprimitive<
- naked_binary_wiarchive,
- wchar_t,
- std::char_traits<wchar_t>
->;
-template class basic_binary_iarchive<naked_binary_wiarchive> ;
-template class binary_iarchive_impl<
- naked_binary_wiarchive,
- wchar_t,
- std::char_traits<wchar_t>
->;
-
// explicitly instantiate for this type of text stream
template class detail::archive_serializer_map<binary_wiarchive>;
template class basic_binary_iprimitive<
diff --git a/3rdParty/Boost/src/libs/serialization/src/shared_ptr_helper.cpp b/3rdParty/Boost/src/libs/serialization/src/shared_ptr_helper.cpp
index b155cd9..15102e2 100644
--- a/3rdParty/Boost/src/libs/serialization/src/shared_ptr_helper.cpp
+++ b/3rdParty/Boost/src/libs/serialization/src/shared_ptr_helper.cpp
@@ -1,8 +1,3 @@
-// MS compatible compilers support #pragma once
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)
-# pragma once
-#endif
-
/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
// shared_ptr_helper.hpp: serialization for boost shared pointern
@@ -17,6 +12,7 @@
#include <list>
#include <utility>
#include <cstddef> // NULL
+#include <cassert>
#define BOOST_ARCHIVE_SOURCE
// include this to prevent linker errors when the
@@ -26,113 +22,42 @@
#include <boost/serialization/throw_exception.hpp>
#include <boost/serialization/void_cast.hpp>
#include <boost/serialization/extended_type_info.hpp>
-#include <boost/archive/shared_ptr_helper.hpp>
+#include <boost/serialization/shared_ptr_helper.hpp>
#include <boost/archive/archive_exception.hpp>
namespace boost {
-namespace archive{
-namespace detail {
+namespace serialization {
/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
// a common class for holding various types of shared pointers
-// returns pointer to object and an indicator whether this is a
-// new entry (true) or a previous one (false)
-BOOST_ARCHIVE_DECL(shared_ptr<void>)
-shared_ptr_helper::get_od(
- const void * t,
- const boost::serialization::extended_type_info * true_type,
- const boost::serialization::extended_type_info * this_type
-){
- // get void pointer to the most derived type
- // this uniquely identifies the object referred to
- const void * od = void_downcast(
- *true_type,
- *this_type,
- t
- );
- if(NULL == od)
- boost::serialization::throw_exception(
- archive_exception(
- archive_exception::unregistered_cast,
- true_type->get_debug_info(),
- this_type->get_debug_info()
- )
- );
-
- // make tracking array if necessary
- if(NULL == m_pointers)
- m_pointers = new collection_type;
-
- //shared_ptr<const void> sp(od, null_deleter());
- shared_ptr<const void> sp(od, null_deleter());
- collection_type::iterator i = m_pointers->find(sp);
-
- if(i == m_pointers->end()){
- shared_ptr<void> np;
- return np;
- }
- od = void_upcast(
- *true_type,
- *this_type,
- i->get()
- );
- if(NULL == od)
- boost::serialization::throw_exception(
- archive_exception(
- archive_exception::unregistered_cast,
- true_type->get_debug_info(),
- this_type->get_debug_info()
- )
- );
-
- return shared_ptr<void>(
- const_pointer_cast<void>(*i),
- const_cast<void *>(od)
- );
-}
-
-BOOST_ARCHIVE_DECL(void)
-shared_ptr_helper::append(const boost::shared_ptr<const void> &sp){
- // make tracking array if necessary
- if(NULL == m_pointers)
- m_pointers = new collection_type;
-
- collection_type::iterator i = m_pointers->find(sp);
-
- if(i == m_pointers->end()){
- std::pair<collection_type::iterator, bool> result;
- result = m_pointers->insert(sp);
- BOOST_ASSERT(result.second);
- }
-}
-
// #ifdef BOOST_SERIALIZATION_SHARED_PTR_132_HPP
BOOST_ARCHIVE_DECL(void)
-shared_ptr_helper::append(const boost_132::shared_ptr<const void> & t){
+shared_ptr_helper_base::append(const boost_132::shared_ptr<const void> & t){
if(NULL == m_pointers_132)
m_pointers_132 = new std::list<boost_132::shared_ptr<const void> >;
m_pointers_132->push_back(t);
}
// #endif
+
BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY())
-shared_ptr_helper::shared_ptr_helper() :
- m_pointers(NULL)
+shared_ptr_helper_base::shared_ptr_helper_base() :
+ m_o_sp(NULL)
#ifdef BOOST_SERIALIZATION_SHARED_PTR_132_HPP
, m_pointers_132(NULL)
#endif
{}
+
BOOST_ARCHIVE_DECL(BOOST_PP_EMPTY())
-shared_ptr_helper::~shared_ptr_helper(){
- if(NULL != m_pointers)
- delete m_pointers;
+shared_ptr_helper_base::~shared_ptr_helper_base(){
+ if(NULL != m_o_sp)
+ delete m_o_sp;
#ifdef BOOST_SERIALIZATION_SHARED_PTR_132_HPP
if(NULL != m_pointers_132)
delete m_pointers_132;
#endif
}
-} // namespace detail
} // namespace serialization
} // namespace boost
diff --git a/3rdParty/Boost/src/libs/serialization/src/text_iarchive.cpp b/3rdParty/Boost/src/libs/serialization/src/text_iarchive.cpp
index cb9017f..9520ca2 100644
--- a/3rdParty/Boost/src/libs/serialization/src/text_iarchive.cpp
+++ b/3rdParty/Boost/src/libs/serialization/src/text_iarchive.cpp
@@ -24,10 +24,6 @@
namespace boost {
namespace archive {
-template class detail::archive_serializer_map<naked_text_iarchive>;
-template class basic_text_iarchive<naked_text_iarchive> ;
-template class text_iarchive_impl<naked_text_iarchive> ;
-
template class detail::archive_serializer_map<text_iarchive>;
template class basic_text_iarchive<text_iarchive> ;
template class text_iarchive_impl<text_iarchive> ;
diff --git a/3rdParty/Boost/src/libs/serialization/src/text_wiarchive.cpp b/3rdParty/Boost/src/libs/serialization/src/text_wiarchive.cpp
index a6630c0..a0c68a8 100644
--- a/3rdParty/Boost/src/libs/serialization/src/text_wiarchive.cpp
+++ b/3rdParty/Boost/src/libs/serialization/src/text_wiarchive.cpp
@@ -26,10 +26,6 @@
namespace boost {
namespace archive {
-template class detail::archive_serializer_map<naked_text_wiarchive>;
-template class basic_text_iarchive<naked_text_wiarchive> ;
-template class text_wiarchive_impl<naked_text_wiarchive> ;
-
template class detail::archive_serializer_map<text_wiarchive>;
template class basic_text_iarchive<text_wiarchive> ;
template class text_wiarchive_impl<text_wiarchive> ;
diff --git a/3rdParty/Boost/src/libs/serialization/src/utf8_codecvt_facet.cpp b/3rdParty/Boost/src/libs/serialization/src/utf8_codecvt_facet.cpp
index d064c63..07deada 100644
--- a/3rdParty/Boost/src/libs/serialization/src/utf8_codecvt_facet.cpp
+++ b/3rdParty/Boost/src/libs/serialization/src/utf8_codecvt_facet.cpp
@@ -7,15 +7,14 @@
#ifdef BOOST_NO_STD_WSTREAMBUF
#error "wide char i/o not supported on this platform"
#else
-
-#define BOOST_UTF8_BEGIN_NAMESPACE \
- namespace boost { namespace archive { namespace detail {
-#define BOOST_UTF8_DECL
-#define BOOST_UTF8_END_NAMESPACE }}}
-#include <boost/detail/utf8_codecvt_facet.ipp>
-#undef BOOST_UTF8_END_NAMESPACE
-#undef BOOST_UTF8_DECL
-#undef BOOST_UTF8_BEGIN_NAMESPACE
-
+ #ifdef BOOST_NO_CXX11_HDR_CODECVT
+ #define BOOST_UTF8_BEGIN_NAMESPACE \
+ namespace boost { namespace archive { namespace detail {
+ #define BOOST_UTF8_DECL
+ #define BOOST_UTF8_END_NAMESPACE }}}
+ #include <boost/detail/utf8_codecvt_facet.ipp>
+ #undef BOOST_UTF8_END_NAMESPACE
+ #undef BOOST_UTF8_DECL
+ #undef BOOST_UTF8_BEGIN_NAMESPACE
+ #endif // BOOST_NO_CXX11_HDR_CODECVT
#endif // BOOST_NO_STD_WSTREAMBUF
-
diff --git a/3rdParty/Boost/src/libs/serialization/src/xml_archive_exception.cpp b/3rdParty/Boost/src/libs/serialization/src/xml_archive_exception.cpp
index ea78916..41d33fd 100644
--- a/3rdParty/Boost/src/libs/serialization/src/xml_archive_exception.cpp
+++ b/3rdParty/Boost/src/libs/serialization/src/xml_archive_exception.cpp
@@ -31,23 +31,23 @@ xml_archive_exception::xml_archive_exception(
) :
archive_exception(other_exception, e1, e2)
{
- m_msg = "programming error";
switch(c){
case xml_archive_parsing_error:
- m_msg = "unrecognized XML syntax";
+ archive_exception::append(0, "unrecognized XML syntax");
break;
case xml_archive_tag_mismatch:
- m_msg = "XML start/end tag mismatch";
+ archive_exception::append(0, "XML start/end tag mismatch");
if(NULL != e1){
- m_msg += " - ";
- m_msg += e1;
+ archive_exception::append(0, " - ");
+ archive_exception::append(0, e1);
}
break;
case xml_archive_tag_name_error:
- m_msg = "Invalid XML tag name";
+ archive_exception::append(0, "Invalid XML tag name");
break;
default:
BOOST_ASSERT(false);
+ archive_exception::append(0, "programming error");
break;
}
}
diff --git a/3rdParty/Boost/src/libs/serialization/src/xml_iarchive.cpp b/3rdParty/Boost/src/libs/serialization/src/xml_iarchive.cpp
index 6d0de77..4311893 100644
--- a/3rdParty/Boost/src/libs/serialization/src/xml_iarchive.cpp
+++ b/3rdParty/Boost/src/libs/serialization/src/xml_iarchive.cpp
@@ -34,10 +34,6 @@
namespace boost {
namespace archive {
-template class detail::archive_serializer_map<naked_xml_iarchive>;
-template class basic_xml_iarchive<naked_xml_iarchive> ;
-template class xml_iarchive_impl<naked_xml_iarchive> ;
-
template class detail::archive_serializer_map<xml_iarchive>;
template class basic_xml_iarchive<xml_iarchive> ;
template class xml_iarchive_impl<xml_iarchive> ;
diff --git a/3rdParty/Boost/src/libs/serialization/src/xml_wiarchive.cpp b/3rdParty/Boost/src/libs/serialization/src/xml_wiarchive.cpp
index 2e10947..0266548 100644
--- a/3rdParty/Boost/src/libs/serialization/src/xml_wiarchive.cpp
+++ b/3rdParty/Boost/src/libs/serialization/src/xml_wiarchive.cpp
@@ -39,10 +39,6 @@
namespace boost {
namespace archive {
-template class detail::archive_serializer_map<naked_xml_wiarchive>;
-template class basic_xml_iarchive<naked_xml_wiarchive> ;
-template class xml_wiarchive_impl<naked_xml_wiarchive> ;
-
template class detail::archive_serializer_map<xml_wiarchive>;
template class basic_xml_iarchive<xml_wiarchive> ;
template class xml_wiarchive_impl<xml_wiarchive> ;