gcc/libstdc++-v3/config/locale/generic
Paolo Carlini e3c0c0989b re PR libstdc++/13341 (ctype<wchar_t>::do_narrow(wchar_t, char) is slow)
2003-12-12  Paolo Carlini  <pcarlini@suse.de>
	    Benjamin Kosnik  <bkoz@redhat.com>

	PR libstdc++/13341
	* include/bits/locale_facets.h (ctype<wchar_t>): Declare
	_M_initialize_ctype() and _M_narrow_ok, _M_narrow and _M_widen.
	* src/ctype.cc (ctype<wchar_t>::ctype(size_t),
	ctype<wchar_t>::ctype(__c_locale, size_t)): Use
	_M_initialize_ctype to fill _M_narrow and _M_widen.
	(ctype_byname<wchar_t>::ctype_byname(const char*, size_t)):
	Likewise.
	* config/locale/generic/ctype_members.cc (do_narrow, do_widen)
	Use _M_narrow and _M_widen when possible, instead of calling
	wctob and btowc, respectively.
	(_M_initialize_ctype): Define, it fills at construction time
	_M_narrow and _M_widen.
	* config/locale/gnu/ctype_members.cc: Likewise.
	* testsuite/performance/narrow_widen_wchar_t.cc: New.

Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com>

From-SVN: r74580
2003-12-12 19:44:17 +00:00
..
c++locale_internal.h c++locale_internal.h: New header. 2002-09-05 09:46:17 +02:00
c_locale.cc c_locale.cc (__convert_to_v(long&), [...]): Remove. 2003-12-08 15:37:03 +00:00
c_locale.h ctype_members.cc (ctype<wchar_t>::do_is): Fix. 2003-09-25 16:37:24 +00:00
codecvt_members.cc codecvt_members.cc (do_out): If we can upper bound the total number of external chars to something smaller... 2003-11-19 11:38:40 +00:00
codecvt_specializations.h
collate_members.cc Move from CPP to CXX. 2003-07-05 04:05:45 +00:00
ctype_members.cc re PR libstdc++/13341 (ctype<wchar_t>::do_narrow(wchar_t, char) is slow) 2003-12-12 19:44:17 +00:00
messages_members.cc Move from CPP to CXX. 2003-07-05 04:05:45 +00:00
messages_members.h locale_facets.h: Correct byname facets for "C" locale. 2003-10-22 18:58:35 +00:00
monetary_members.cc linker-map.gnu: Add __moneypunct_cache, __timepunct_cache. 2003-07-18 02:27:16 +00:00
numeric_members.cc numeric_members.cc: Correct type info. 2003-07-08 20:25:39 +00:00
time_members.cc linker-map.gnu: Add __moneypunct_cache, __timepunct_cache. 2003-07-18 02:27:16 +00:00
time_members.h locale_classes.h (locale::facet::_S_get_c_name): Add. 2003-10-02 23:06:13 +00:00