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/src/archive_exception.cpp
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/src/archive_exception.cpp')
-rw-r--r--3rdParty/Boost/src/libs/serialization/src/archive_exception.cpp69
1 files changed, 41 insertions, 28 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() :