summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjlquinn <jlquinn@138bc75d-0d04-0410-961f-82ee72b054a4>2003-07-01 05:38:04 +0000
committerjlquinn <jlquinn@138bc75d-0d04-0410-961f-82ee72b054a4>2003-07-01 05:38:04 +0000
commitf921e01f3a39ee8745e9c3431b7f156ffddea2f3 (patch)
treedaf50271b1a1e0cc14b45d6a32e8b8636e167dc6
parent8a82c3cf49bf6a6e6e5e24cd2080bf6b09a37878 (diff)
downloadgcc-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
-rw-r--r--libstdc++-v3/ChangeLog5
-rw-r--r--libstdc++-v3/include/bits/locale_facets.tcc30
-rw-r--r--libstdc++-v3/src/locale.cc32
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*