summaryrefslogtreecommitdiff
path: root/boost/archive/impl
diff options
context:
space:
mode:
Diffstat (limited to 'boost/archive/impl')
-rw-r--r--boost/archive/impl/archive_serializer_map.ipp4
-rw-r--r--boost/archive/impl/basic_binary_iprimitive.ipp4
-rw-r--r--boost/archive/impl/basic_binary_oprimitive.ipp2
-rw-r--r--boost/archive/impl/text_wiarchive_impl.ipp2
-rw-r--r--boost/archive/impl/xml_woarchive_impl.ipp2
5 files changed, 11 insertions, 3 deletions
diff --git a/boost/archive/impl/archive_serializer_map.ipp b/boost/archive/impl/archive_serializer_map.ipp
index 8dabf0d08f..7f163ec407 100644
--- a/boost/archive/impl/archive_serializer_map.ipp
+++ b/boost/archive/impl/archive_serializer_map.ipp
@@ -47,6 +47,10 @@ archive_serializer_map<Archive>::insert(const basic_serializer * bs){
template<class Archive>
BOOST_ARCHIVE_OR_WARCHIVE_DECL void
archive_serializer_map<Archive>::erase(const basic_serializer * bs){
+ BOOST_ASSERT(! boost::serialization::singleton<
+ extra_detail::map<Archive>
+ >::is_destroyed()
+ );
if(boost::serialization::singleton<
extra_detail::map<Archive>
>::is_destroyed())
diff --git a/boost/archive/impl/basic_binary_iprimitive.ipp b/boost/archive/impl/basic_binary_iprimitive.ipp
index 7082b003e7..bbe933ccf6 100644
--- a/boost/archive/impl/basic_binary_iprimitive.ipp
+++ b/boost/archive/impl/basic_binary_iprimitive.ipp
@@ -84,6 +84,7 @@ basic_binary_iprimitive<Archive, Elem, Tr>::init()
);
}
+#ifndef BOOST_NO_CWCHAR
template<class Archive, class Elem, class Tr>
BOOST_ARCHIVE_OR_WARCHIVE_DECL void
basic_binary_iprimitive<Archive, Elem, Tr>::load(wchar_t * ws)
@@ -93,6 +94,7 @@ basic_binary_iprimitive<Archive, Elem, Tr>::load(wchar_t * ws)
load_binary(ws, l * sizeof(wchar_t) / sizeof(char));
ws[l] = L'\0';
}
+#endif
template<class Archive, class Elem, class Tr>
BOOST_ARCHIVE_OR_WARCHIVE_DECL void
@@ -110,7 +112,6 @@ basic_binary_iprimitive<Archive, Elem, Tr>::load(std::string & s)
load_binary(&(*s.begin()), l);
}
-#ifndef BOOST_NO_CWCHAR
template<class Archive, class Elem, class Tr>
BOOST_ARCHIVE_OR_WARCHIVE_DECL void
basic_binary_iprimitive<Archive, Elem, Tr>::load(char * s)
@@ -120,7 +121,6 @@ basic_binary_iprimitive<Archive, Elem, Tr>::load(char * s)
load_binary(s, l);
s[l] = '\0';
}
-#endif
#ifndef BOOST_NO_STD_WSTRING
template<class Archive, class Elem, class Tr>
diff --git a/boost/archive/impl/basic_binary_oprimitive.ipp b/boost/archive/impl/basic_binary_oprimitive.ipp
index 130831e4fb..7b042173a4 100644
--- a/boost/archive/impl/basic_binary_oprimitive.ipp
+++ b/boost/archive/impl/basic_binary_oprimitive.ipp
@@ -71,6 +71,7 @@ basic_binary_oprimitive<Archive, Elem, Tr>::save(const std::string &s)
}
#ifndef BOOST_NO_CWCHAR
+#ifndef BOOST_NO_INTRINSIC_WCHAR_T
template<class Archive, class Elem, class Tr>
BOOST_ARCHIVE_OR_WARCHIVE_DECL void
basic_binary_oprimitive<Archive, Elem, Tr>::save(const wchar_t * ws)
@@ -91,6 +92,7 @@ basic_binary_oprimitive<Archive, Elem, Tr>::save(const std::wstring &ws)
save_binary(ws.data(), l * sizeof(wchar_t) / sizeof(char));
}
#endif
+#endif // BOOST_NO_CWCHAR
template<class Archive, class Elem, class Tr>
BOOST_ARCHIVE_OR_WARCHIVE_DECL
diff --git a/boost/archive/impl/text_wiarchive_impl.ipp b/boost/archive/impl/text_wiarchive_impl.ipp
index 12af2b9f12..e85625ac32 100644
--- a/boost/archive/impl/text_wiarchive_impl.ipp
+++ b/boost/archive/impl/text_wiarchive_impl.ipp
@@ -56,7 +56,7 @@ text_wiarchive_impl<Archive>::load(std::string &s)
s.resize(0);
s.reserve(size);
while(size-- > 0){
- int x = is.narrow(is.get(), '\0');
+ char x = is.narrow(is.get(), '\0');
s += x;
}
}
diff --git a/boost/archive/impl/xml_woarchive_impl.ipp b/boost/archive/impl/xml_woarchive_impl.ipp
index 58f92c9d92..01b1a052d5 100644
--- a/boost/archive/impl/xml_woarchive_impl.ipp
+++ b/boost/archive/impl/xml_woarchive_impl.ipp
@@ -17,7 +17,9 @@
#include <cstring> // strlen
#include <cstdlib> // mbtowc
+#ifndef BOOST_NO_CWCHAR
#include <cwchar> // wcslen
+#endif
#include <boost/config.hpp>
#if defined(BOOST_NO_STDC_NAMESPACE)