locale.cc (__use_cache<numpunct>): Revert previous relocation.

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.

From-SVN: r68761
This commit is contained in:
Jerry Quinn 2003-07-01 05:38:04 +00:00 committed by Jerry Quinn
parent 6cf9ac2858
commit e97ee22ea5
3 changed files with 41 additions and 26 deletions

View File

@ -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.

View File

@ -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.

View File

@ -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*