diff options
author | jlquinn <jlquinn@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-07-01 05:38:04 +0000 |
---|---|---|
committer | jlquinn <jlquinn@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-07-01 05:38:04 +0000 |
commit | f921e01f3a39ee8745e9c3431b7f156ffddea2f3 (patch) | |
tree | daf50271b1a1e0cc14b45d6a32e8b8636e167dc6 /libstdc++-v3 | |
parent | 8a82c3cf49bf6a6e6e5e24cd2080bf6b09a37878 (diff) | |
download | gcc-f921e01f3a39ee8745e9c3431b7f156ffddea2f3.tar.gz |
2003-06-30 Jerry Quinn <jlquinn@optonline.net>
* src/locale.cc (__use_cache<numpunct>): Revert previous relocation.
* include/bits/locale_facets.tcc (__use_cache<numpunct>): Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@68761 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/ChangeLog | 5 | ||||
-rw-r--r-- | libstdc++-v3/include/bits/locale_facets.tcc | 30 | ||||
-rw-r--r-- | libstdc++-v3/src/locale.cc | 32 |
3 files changed, 41 insertions, 26 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 79fc528b896..930c0d894dd 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2003-06-30 Jerry Quinn <jlquinn@optonline.net> + + * src/locale.cc (__use_cache<numpunct>): Revert previous relocation. + * include/bits/locale_facets.tcc (__use_cache<numpunct>): Ditto. + 2003-06-30 Benjamin Kosnik <bkoz@redhat.com> * 27_io/basic_filebuf/seekoff/char/1-in.cc: New. diff --git a/libstdc++-v3/include/bits/locale_facets.tcc b/libstdc++-v3/include/bits/locale_facets.tcc index 6a3881652d2..aca0e056d67 100644 --- a/libstdc++-v3/include/bits/locale_facets.tcc +++ b/libstdc++-v3/include/bits/locale_facets.tcc @@ -93,35 +93,13 @@ namespace std __use_cache(const locale& __loc); template<> - inline const __numpunct_cache<char>& - __use_cache(const locale& __loc) - { - size_t __i = numpunct<char>::id._M_id(); - const locale::facet** __caches = __loc._M_impl->_M_caches; - if (!__caches[__i]) - { - __numpunct_cache<char>* __tmp = new __numpunct_cache<char>; - __tmp->_M_cache(__loc); - __loc._M_impl->_M_install_cache(__tmp, __i); - } - return static_cast<const __numpunct_cache<char>&>(*__caches[__i]); - } + const __numpunct_cache<char>& + __use_cache(const locale& __loc); #ifdef _GLIBCPP_USE_WCHAR_T template<> - inline const __numpunct_cache<wchar_t>& - __use_cache(const locale& __loc) - { - size_t __i = numpunct<wchar_t>::id._M_id(); - const locale::facet** __caches = __loc._M_impl->_M_caches; - if (!__caches[__i]) - { - __numpunct_cache<wchar_t>* __tmp = new __numpunct_cache<wchar_t>; - __tmp->_M_cache(__loc); - __loc._M_impl->_M_install_cache(__tmp, __i); - } - return static_cast<const __numpunct_cache<wchar_t>&>(*__caches[__i]); - } + const __numpunct_cache<wchar_t>& + __use_cache(const locale& __loc); #endif // Stage 1: Determine a conversion specifier. diff --git a/libstdc++-v3/src/locale.cc b/libstdc++-v3/src/locale.cc index 8cb89e56772..7788a58419d 100644 --- a/libstdc++-v3/src/locale.cc +++ b/libstdc++-v3/src/locale.cc @@ -449,6 +449,38 @@ namespace std locale::facet:: ~facet() { } + template<> + const __numpunct_cache<char>& + __use_cache(const locale& __loc) + { + size_t __i = numpunct<char>::id._M_id(); + const locale::facet** __caches = __loc._M_impl->_M_caches; + if (!__caches[__i]) + { + __numpunct_cache<char>* __tmp = new __numpunct_cache<char>; + __tmp->_M_cache(__loc); + __loc._M_impl->_M_install_cache(__tmp, __i); + } + return static_cast<const __numpunct_cache<char>&>(*__caches[__i]); + } + +#ifdef _GLIBCPP_USE_WCHAR_T + template<> + const __numpunct_cache<wchar_t>& + __use_cache(const locale& __loc) + { + size_t __i = numpunct<wchar_t>::id._M_id(); + const locale::facet** __caches = __loc._M_impl->_M_caches; + if (!__caches[__i]) + { + __numpunct_cache<wchar_t>* __tmp = new __numpunct_cache<wchar_t>; + __tmp->_M_cache(__loc); + __loc._M_impl->_M_install_cache(__tmp, __i); + } + return static_cast<const __numpunct_cache<wchar_t>&>(*__caches[__i]); + } +#endif + // Definitions for static const data members of time_base template<> const char* |