locale_conv.h (__do_str_codecvt): Handle empty range.
* include/bits/locale_conv.h (__do_str_codecvt): Handle empty range. (wstring_convert): Move into __cxx11 namespace. (wbuffer_convert(streambuf*, _Codecvt*, state_type)): Fix exception message. From-SVN: r224737
This commit is contained in:
parent
4db6c2f585
commit
9eb659e003
|
@ -1,5 +1,10 @@
|
|||
2015-06-22 Jonathan Wakely <jwakely@redhat.com>
|
||||
|
||||
* include/bits/locale_conv.h (__do_str_codecvt): Handle empty range.
|
||||
(wstring_convert): Move into __cxx11 namespace.
|
||||
(wbuffer_convert(streambuf*, _Codecvt*, state_type)): Fix exception
|
||||
message.
|
||||
|
||||
PR libstdc++/64657
|
||||
* include/bits/stl_uninitialized.h
|
||||
(__uninitialized_copy::__uninit_copy): Cast expression to void.
|
||||
|
|
|
@ -58,6 +58,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
_OutStr& __outstr, const _Codecvt& __cvt, _State& __state,
|
||||
size_t& __count, _Fn __fn)
|
||||
{
|
||||
if (__first == __last)
|
||||
{
|
||||
__outstr.clear();
|
||||
return true;
|
||||
}
|
||||
|
||||
size_t __outchars = 0;
|
||||
auto __next = __first;
|
||||
const auto __maxlen = __cvt.max_length() + 1;
|
||||
|
@ -150,6 +156,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
return __str_codecvt_out(__first, __last, __outstr, __cvt, __state, __n);
|
||||
}
|
||||
|
||||
_GLIBCXX_BEGIN_NAMESPACE_CXX11
|
||||
|
||||
/// String conversions
|
||||
template<typename _Codecvt, typename _Elem = wchar_t,
|
||||
typename _Wide_alloc = allocator<_Elem>,
|
||||
|
@ -301,6 +309,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
bool _M_with_strings = false;
|
||||
};
|
||||
|
||||
_GLIBCXX_END_NAMESPACE_CXX11
|
||||
|
||||
/// Buffer conversions
|
||||
template<typename _Codecvt, typename _Elem = wchar_t,
|
||||
typename _Tr = char_traits<_Elem>>
|
||||
|
@ -325,7 +335,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
: _M_buf(__bytebuf), _M_cvt(__pcvt), _M_state(__state)
|
||||
{
|
||||
if (!_M_cvt)
|
||||
__throw_logic_error("wstring_convert");
|
||||
__throw_logic_error("wbuffer_convert");
|
||||
|
||||
_M_always_noconv = _M_cvt->always_noconv();
|
||||
|
||||
|
|
Loading…
Reference in New Issue