]> git.ipfire.org Git - thirdparty/gcc.git/commit
re PR libstdc++/40712 (locale(const locale&, const char*, locale::category) can creat...
authorPaolo Carlini <paolo.carlini@oracle.com>
Sat, 18 Jul 2009 22:58:10 +0000 (22:58 +0000)
committerPaolo Carlini <paolo@gcc.gnu.org>
Sat, 18 Jul 2009 22:58:10 +0000 (22:58 +0000)
commitaf90c8c9ae3b795f28cabd9f11e9f7c9a1ccccb4
tree7563faaf990f548d8b0ebbb3e082086e798b7386
parent827f4079406b72fce7b49a29abe60ecb801462d5
re PR libstdc++/40712 (locale(const locale&, const char*, locale::category) can create broken locale)

2009-07-18  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/40712
* config/locale/gnu/numeric_members.cc (numpunct<>::
_M_initialize_numpunct): Dynamically allocate _M_data->_M_grouping
and copy the langinfo data into it.
(numpunct<>::~numpunct): Free the allocated memory.
* config/locale/gnu/monetary_members.cc (moneypunct<>::
_M_initialize_moneypunct): Dynamically allocate _M_data->_M_grouping,
_M_data->_M_positive_sign, _M_data->_M_negative_sign,
_M_data->_M_curr_symbol.
(moneypunct<>::~moneypunct): Free the allocated memory.
* testsuite/22_locale/moneypunct/40712.cc: New.

* include/bits/locale_facets.tcc (__numpunct_cache<>::_M_cache):
Do not leak memory if new throws.
* include/bits/locale_facets_nonio.tcc
(__moneypunct_cache<>::_M_cache): Likewise.

From-SVN: r149782
libstdc++-v3/ChangeLog
libstdc++-v3/config/locale/gnu/monetary_members.cc
libstdc++-v3/config/locale/gnu/numeric_members.cc
libstdc++-v3/include/bits/locale_facets.tcc
libstdc++-v3/include/bits/locale_facets_nonio.tcc
libstdc++-v3/testsuite/22_locale/moneypunct/40712.cc [new file with mode: 0644]