iomanip (put_money): Fix thinko, use __err local, like in, eg, basic_ostream::_M_insert.
2011-12-02 Paolo Carlini <paolo.carlini@oracle.com> * include/std/iomanip (put_money): Fix thinko, use __err local, like in, eg, basic_ostream::_M_insert. From-SVN: r181931
This commit is contained in:
parent
73cb28d7d0
commit
f5ca3c3408
|
@ -1,3 +1,8 @@
|
|||
2011-12-02 Paolo Carlini <paolo.carlini@oracle.com>
|
||||
|
||||
* include/std/iomanip (put_money): Fix thinko, use __err local,
|
||||
like in, eg, basic_ostream::_M_insert.
|
||||
|
||||
2011-11-30 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
* acinclude.m4 (GLIBCXX_ENABLE_ATOMIC_BUILTINS): Remove
|
||||
|
|
|
@ -282,7 +282,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
}
|
||||
__catch(...)
|
||||
{ __is._M_setstate(ios_base::badbit); }
|
||||
if (ios_base::goodbit != __err)
|
||||
if (__err)
|
||||
__is.setstate(__err);
|
||||
}
|
||||
return __is;
|
||||
|
@ -312,15 +312,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
typename basic_ostream<_CharT, _Traits>::sentry __cerb(__os);
|
||||
if (__cerb)
|
||||
{
|
||||
ios_base::iostate __err = ios_base::goodbit;
|
||||
__try
|
||||
{
|
||||
typedef ostreambuf_iterator<_CharT, _Traits> _Iter;
|
||||
typedef money_put<_CharT, _Iter> _MoneyPut;
|
||||
|
||||
const _MoneyPut& __mp = use_facet<_MoneyPut>(__os.getloc());
|
||||
const _Iter __end = __mp.put(_Iter(__os.rdbuf()), __f._M_intl,
|
||||
__os, __os.fill(), __f._M_mon);
|
||||
if (__end.failed())
|
||||
__os.setstate(ios_base::badbit);
|
||||
if (__mp.put(_Iter(__os.rdbuf()), __f._M_intl, __os,
|
||||
__os.fill(), __f._M_mon).failed())
|
||||
__err |= ios_base::badbit;
|
||||
}
|
||||
__catch(__cxxabiv1::__forced_unwind&)
|
||||
{
|
||||
|
@ -329,6 +330,8 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
|
|||
}
|
||||
__catch(...)
|
||||
{ __os._M_setstate(ios_base::badbit); }
|
||||
if (__err)
|
||||
__os.setstate(__err);
|
||||
}
|
||||
return __os;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue