diff options
Diffstat (limited to 'contrib/libstdc++/config/os/solaris/solaris2.7/ctype_noninline.h')
-rw-r--r-- | contrib/libstdc++/config/os/solaris/solaris2.7/ctype_noninline.h | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/contrib/libstdc++/config/os/solaris/solaris2.7/ctype_noninline.h b/contrib/libstdc++/config/os/solaris/solaris2.7/ctype_noninline.h index c8b11a9..d4917f0 100644 --- a/contrib/libstdc++/config/os/solaris/solaris2.7/ctype_noninline.h +++ b/contrib/libstdc++/config/os/solaris/solaris2.7/ctype_noninline.h @@ -40,16 +40,26 @@ ctype<char>::ctype(__c_locale, const mask* __table, bool __del, size_t __refs) - : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del), + : facet(__refs), _M_del(__table != 0 && __del), _M_toupper(__trans_upper), _M_tolower(__trans_lower), _M_table(__table ? __table : classic_table()) - { } + { + memset(_M_widen, 0, sizeof(_M_widen)); + _M_widen_ok = 0; + memset(_M_narrow, 0, sizeof(_M_narrow)); + _M_narrow_ok = 0; + } ctype<char>::ctype(const mask* __table, bool __del, size_t __refs) - : __ctype_abstract_base<char>(__refs), _M_del(__table != 0 && __del), + : facet(__refs), _M_del(__table != 0 && __del), _M_toupper(__trans_upper), _M_tolower(__trans_lower), _M_table(__table ? __table : classic_table()) - { } + { + memset(_M_widen, 0, sizeof(_M_widen)); + _M_widen_ok = 0; + memset(_M_narrow, 0, sizeof(_M_narrow)); + _M_narrow_ok = 0; + } char ctype<char>::do_toupper(char __c) const |