--- stdcxx-4.2.1/include/loc/_numpunct.h 2011-02-02 12:41:01.086059633 -0500
+++ stdcxx-4.2.1/include/loc/_numpunct.h 2011-04-07 17:38:11.594730348 -0400
@@ -60,6 +60,7 @@
typedef
basic_string<char_type, char_traits<char_type>, allocator<char_type> >
string_type;
+ typedef numpunct<_CharT> _Type;
_EXPLICIT numpunct (_RWSTD_SIZE_T __ref = 0)
: _RW::__rw_facet (__ref), _C_flags (0) { }
@@ -140,6 +141,8 @@
inline _TYPENAME numpunct<_CharT>::char_type
numpunct<_CharT>::decimal_point () const
{
+ _RWSTD_MT_CLASS_GUARD (_Type);
+
if (!(_C_flags & _RW::__rw_dp)) {
numpunct* const __self = _RWSTD_CONST_CAST (numpunct*, this);
@@ -158,6 +161,8 @@
inline _TYPENAME numpunct<_CharT>::char_type
numpunct<_CharT>::thousands_sep () const
{
+ _RWSTD_MT_CLASS_GUARD (_Type);
+
if (!(_C_flags & _RW::__rw_ts)) {
numpunct* const __self = _RWSTD_CONST_CAST (numpunct*, this);
@@ -175,6 +180,8 @@
template <class _CharT>
inline string numpunct<_CharT>::grouping () const
{
+ _RWSTD_MT_CLASS_GUARD (_Type);
+
if (!(_C_flags & _RW::__rw_gr)) {
numpunct* const __self = _RWSTD_CONST_CAST (numpunct*, this);
@@ -185,7 +192,7 @@
__self->_C_flags |= _RW::__rw_gr;
}
- return _C_grouping;
+ return _C_grouping.c_str ();
}
@@ -193,6 +200,8 @@
inline _TYPENAME numpunct<_CharT>::string_type
numpunct<_CharT>::truename () const
{
+ _RWSTD_MT_CLASS_GUARD (_Type);
+
if (!(_C_flags & _RW::__rw_tn)) {
numpunct* const __self = _RWSTD_CONST_CAST (numpunct*, this);
@@ -203,7 +212,7 @@
__self->_C_flags |= _RW::__rw_tn;
}
- return _C_truename;
+ return _C_truename.data ();
}
@@ -211,6 +220,8 @@
inline _TYPENAME numpunct<_CharT>::string_type
numpunct<_CharT>::falsename () const
{
+ _RWSTD_MT_CLASS_GUARD (_Type);
+
if (!(_C_flags & _RW::__rw_fn)) {
numpunct* const __self = _RWSTD_CONST_CAST (numpunct*, this);
@@ -221,7 +232,7 @@
__self->_C_flags |= _RW::__rw_fn;
}
- return _C_falsename;
+ return _C_falsename.data ();
}
// #endif _RWSTD_NO_EXT_NUMPUNCT_PRIMARY
@@ -276,3 +287,4 @@
#endif // _RWSTD_LOC_NUMPUNCT_H_INCLUDED
+
--- stdcxx-4.2.1/include/loc/_moneypunct.h 2011-02-02 12:41:01.084951217 -0500
+++ stdcxx-4.2.1/include/loc/_moneypunct.h 2011-04-07 17:40:45.482729647 -0400
@@ -71,6 +71,7 @@
typedef
basic_string<char_type, char_traits<char_type>, allocator<char_type> >
string_type;
+ typedef moneypunct<_CharT, bool> _Type;
_EXPLICIT moneypunct (_RWSTD_SIZE_T __refs = 0)
: _RW::__rw_facet (__refs),
@@ -122,49 +123,76 @@
// 22.2.6.3.1, p1
virtual char_type do_decimal_point () const {
+
+ _RWSTD_MT_CLASS_GUARD (_Type);
+
return *_C_get (this, _RW::__rw_dp);
}
// 22.2.6.3.1, p2
virtual char_type do_thousands_sep () const {
+
+ _RWSTD_MT_CLASS_GUARD (_Type);
+
return *_C_get (this, _RW::__rw_ts);
}
// 22.2.6.3.1, p3
virtual string do_grouping () const {
+
+ _RWSTD_MT_CLASS_GUARD (_Type);
+
return
_RWSTD_REINTERPRET_CAST (const char*, _C_get (this, _RW::__rw_gr));
}
// 22.2.6.3.1, p4
virtual string_type do_curr_symbol () const {
+
+ _RWSTD_MT_CLASS_GUARD (_Type);
+
return _C_get (this, _RW::__rw_cs);
}
// 22.2.6.3.1, p5
virtual string_type do_positive_sign () const {
+
+ _RWSTD_MT_CLASS_GUARD (_Type);
+
return _C_get (this, _RW::__rw_ps);
}
// 22.2.6.3.1, p5
virtual string_type do_negative_sign () const {
+
+ _RWSTD_MT_CLASS_GUARD (_Type);
+
return _C_get (this, _RW::__rw_ns);
}
// 22.2.6.3.1, p6
virtual int do_frac_digits () const {
+
+ _RWSTD_MT_CLASS_GUARD (_Type);
+
return _RWSTD_STATIC_CAST(int, _RWSTD_REINTERPRET_CAST (_RWSTD_SIZE_T,
_C_get (this, _RW::__rw_fd)));
}
// 22.2.6.3.1, p7
virtual pattern do_pos_format () const {
+
+ _RWSTD_MT_CLASS_GUARD (_Type);
+
return *_RWSTD_REINTERPRET_CAST (const pattern*,
_C_get (this, _RW::__rw_pf));
}
// 22.2.6.3.1, p5
virtual pattern do_neg_format () const {
+
+ _RWSTD_MT_CLASS_GUARD (_Type);
+
return *_RWSTD_REINTERPRET_CAST (const pattern*,
_C_get (this, _RW::__rw_nf));
}