summaryrefslogtreecommitdiff
path: root/boost/system/detail/error_code.ipp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/system/detail/error_code.ipp')
-rw-r--r--boost/system/detail/error_code.ipp57
1 files changed, 31 insertions, 26 deletions
diff --git a/boost/system/detail/error_code.ipp b/boost/system/detail/error_code.ipp
index 51ba3f4747..a2b3f11c48 100644
--- a/boost/system/detail/error_code.ipp
+++ b/boost/system/detail/error_code.ipp
@@ -21,9 +21,9 @@
#include <cstring> // for strerror/strerror_r
# if defined( BOOST_WINDOWS_API )
-# include <boost/detail/winapi/error_codes.hpp>
-# include <boost/detail/winapi/error_handling.hpp>
-# include <boost/detail/winapi/character_code_conversion.hpp>
+# include <boost/winapi/error_codes.hpp>
+# include <boost/winapi/error_handling.hpp>
+# include <boost/winapi/character_code_conversion.hpp>
# if !BOOST_PLAT_WINDOWS_RUNTIME
# include <boost/system/detail/local_free_on_destruction.hpp>
# endif
@@ -154,7 +154,6 @@ namespace
# endif
if ( sz > sizeof(buf) ) std::free( bp );
- sz = 0;
return msg;
# endif // else POSIX version of strerror_r
# endif // else use strerror_r
@@ -187,7 +186,7 @@ namespace
# if defined(BOOST_WINDOWS_API)
- using namespace boost::detail::winapi; // for error codes
+ using namespace boost::winapi; // for error codes
# endif
@@ -383,15 +382,15 @@ namespace
std::wstring buf(128, wchar_t());
for (;;)
{
- boost::detail::winapi::DWORD_ retval = boost::detail::winapi::FormatMessageW(
- boost::detail::winapi::FORMAT_MESSAGE_FROM_SYSTEM_ |
- boost::detail::winapi::FORMAT_MESSAGE_IGNORE_INSERTS_,
+ boost::winapi::DWORD_ retval = boost::winapi::FormatMessageW(
+ boost::winapi::FORMAT_MESSAGE_FROM_SYSTEM_ |
+ boost::winapi::FORMAT_MESSAGE_IGNORE_INSERTS_,
NULL,
ev,
- boost::detail::winapi::MAKELANGID_(boost::detail::winapi::LANG_NEUTRAL_,
- boost::detail::winapi::SUBLANG_DEFAULT_), // Default language
+ boost::winapi::MAKELANGID_(boost::winapi::LANG_NEUTRAL_,
+ boost::winapi::SUBLANG_DEFAULT_), // Default language
&buf[0],
- buf.size(),
+ static_cast<boost::winapi::DWORD_>(buf.size()),
NULL
);
@@ -400,8 +399,8 @@ namespace
buf.resize(retval);
break;
}
- else if (boost::detail::winapi::GetLastError() !=
- boost::detail::winapi::ERROR_INSUFFICIENT_BUFFER_)
+ else if (boost::winapi::GetLastError() !=
+ boost::winapi::ERROR_INSUFFICIENT_BUFFER_)
{
return std::string("Unknown error");
}
@@ -412,9 +411,15 @@ namespace
}
int num_chars = (buf.size() + 1) * 2;
- boost::detail::winapi::LPSTR_ narrow_buffer =
- (boost::detail::winapi::LPSTR_)_alloca(num_chars);
- if (boost::detail::winapi::WideCharToMultiByte(boost::detail::winapi::CP_ACP_, 0,
+
+ boost::winapi::LPSTR_ narrow_buffer =
+#if defined(__GNUC__)
+ (boost::winapi::LPSTR_)__builtin_alloca(num_chars);
+#else
+ (boost::winapi::LPSTR_)_alloca(num_chars);
+#endif
+
+ if (boost::winapi::WideCharToMultiByte(boost::winapi::CP_ACP_, 0,
buf.c_str(), -1, narrow_buffer, num_chars, NULL, NULL) == 0)
{
return std::string("Unknown error");
@@ -422,16 +427,16 @@ namespace
std::string str( narrow_buffer );
#else
- boost::detail::winapi::LPVOID_ lpMsgBuf = 0;
- boost::detail::winapi::DWORD_ retval = boost::detail::winapi::FormatMessageA(
- boost::detail::winapi::FORMAT_MESSAGE_ALLOCATE_BUFFER_ |
- boost::detail::winapi::FORMAT_MESSAGE_FROM_SYSTEM_ |
- boost::detail::winapi::FORMAT_MESSAGE_IGNORE_INSERTS_,
+ boost::winapi::LPVOID_ lpMsgBuf = 0;
+ boost::winapi::DWORD_ retval = boost::winapi::FormatMessageA(
+ boost::winapi::FORMAT_MESSAGE_ALLOCATE_BUFFER_ |
+ boost::winapi::FORMAT_MESSAGE_FROM_SYSTEM_ |
+ boost::winapi::FORMAT_MESSAGE_IGNORE_INSERTS_,
NULL,
ev,
- boost::detail::winapi::MAKELANGID_(boost::detail::winapi::LANG_NEUTRAL_,
- boost::detail::winapi::SUBLANG_DEFAULT_), // Default language
- (boost::detail::winapi::LPSTR_) &lpMsgBuf,
+ boost::winapi::MAKELANGID_(boost::winapi::LANG_NEUTRAL_,
+ boost::winapi::SUBLANG_DEFAULT_), // Default language
+ (boost::winapi::LPSTR_) &lpMsgBuf,
0,
NULL
);
@@ -439,7 +444,7 @@ namespace
if (retval == 0)
return std::string("Unknown error");
- std::string str(static_cast<boost::detail::winapi::LPCSTR_>(lpMsgBuf));
+ std::string str(static_cast<boost::winapi::LPCSTR_>(lpMsgBuf));
# endif
while ( str.size()
&& (str[str.size()-1] == '\n' || str[str.size()-1] == '\r') )
@@ -453,7 +458,7 @@ namespace
} // unnamed namespace
-# ifndef BOOST_SYSTEM_NO_DEPRECATED
+# ifdef BOOST_SYSTEM_ENABLE_DEPRECATED
BOOST_SYSTEM_DECL error_code throws; // "throw on error" special error_code;
// note that it doesn't matter if this
// isn't initialized before use since