This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Hi,
as noticed by Jakub a few days ago, a wcsrtombs and a mbsrtowcs call
in src/codecvt.cc are still not wrapped in __uselocale.
In order to fix this, it seems to me that a _M_c_locale_codecvt member
must be added to the codecvt specializations.
Is this unavoidable? Then, most probably the patch may qualify only for 3.3.
I'm also unsure if the _M_c_locale_codecvt member is really necessary also
for the codecvt<_InternT, _ExternT, __enc_traits> specialization: it seems
so, however, due to the structure of codecvt_byname.
Anyway, for the time being I could only sanity-check the patch with
glibc2.2.5, since I don't have a 2.3pre installed on my system: I would
appreciate if someone could regression test it with a current 2.3.
Ciao, Paolo.
/////////
* include/bits/codecvt.h (class codecvt<char, char, mbstate_t>,
codecvt<wchar_t, char, mbstate_t>): Add __c_locale type
_M_c_locale_codecvt member.
(codecvt_byname::codecvt_byname): Initialize it.
* config/locale/ieee_1003.1-2001/codecvt_specializations.h
(class codecvt<_InternT, _ExternT, __enc_traits>):
Add __c_locale type _M_c_locale_codecvt member.
* src/codecvt.cc (codecvt<char, char, mbstate_t>::codecvt,
codecvt<wchar_t, char, mbstate_t>::codecvt):
Initialize _M_c_locale_codecvt.
(codecvt<char, char, mbstate_t>::~codecvt,
codecvt<wchar_t, char, mbstate_t>::~codecvt): Destroy locale.
(codecvt::do_out): Switch to _M_c_locale_codecvt around
wcsrtombs call.
(codecvt::do_in): Ditto for mbsrtowcs call.
Attachment:
patch_codecvt
Description: application/java-vm
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |