Author: sebor Date: Tue Jul 29 10:06:50 2008 New Revision: 680775 URL: http://svn.apache.org/viewvc?rev=680775&view=rev Log: 2008-07-29 Martin Sebor <[EMAIL PROTECTED]>
* include/loc/_messages.h (~messages, ~messages_byname): Explicitly declared dtors to prevent the compiler from emitting function and vtable definition in every translation unit that uses the class. * include/loc/_money_put.h (~money_put): Same. * include/loc/_moneypunct.h (~moneypunct_byname): Same. * include/loc/_numpunct.h (~numpunct_byname): Same. * include/loc/_time_get.h (~time_get, ~time_get_byname): Same. * include/loc/_time_put.h (~time_put, ~time_put_byname): Same. * include/loc/_money_put.cc (~money_put): Defined. * include/loc/_time_get.cc (~time_get, ~time_get_byname): Same. * include/loc/_moneypunct.cc (~moneypunct_byname): Same. * include/loc/_messages.cc (~messages, ~messages_byname): Same. * include/loc/_numpunct.cc (~numpunct_byname): Same. * include/loc/_time_put.cc (~time_put, ~time_put_byname): Same. Modified: stdcxx/branches/4.2.x/include/loc/_messages.cc stdcxx/branches/4.2.x/include/loc/_messages.h stdcxx/branches/4.2.x/include/loc/_money_put.cc stdcxx/branches/4.2.x/include/loc/_money_put.h stdcxx/branches/4.2.x/include/loc/_moneypunct.cc stdcxx/branches/4.2.x/include/loc/_moneypunct.h stdcxx/branches/4.2.x/include/loc/_numpunct.cc stdcxx/branches/4.2.x/include/loc/_numpunct.h stdcxx/branches/4.2.x/include/loc/_time_get.cc stdcxx/branches/4.2.x/include/loc/_time_get.h stdcxx/branches/4.2.x/include/loc/_time_put.cc stdcxx/branches/4.2.x/include/loc/_time_put.h Modified: stdcxx/branches/4.2.x/include/loc/_messages.cc URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/include/loc/_messages.cc?rev=680775&r1=680774&r2=680775&view=diff ============================================================================== --- stdcxx/branches/4.2.x/include/loc/_messages.cc (original) +++ stdcxx/branches/4.2.x/include/loc/_messages.cc Tue Jul 29 10:06:50 2008 @@ -36,6 +36,16 @@ _RW::__rw_facet_id messages<_CharT>::id; +// outlined to avoid generating a vtable in each translation unit +// that uses the class +template <class _CharT> +/* virtual */ messages<_CharT>:: +~messages () +{ + // no-op +} + + template <class _CharT> messages_base::catalog messages<_CharT>:: @@ -141,4 +151,14 @@ } +// outlined to avoid generating a vtable in each translation unit +// that uses the class +template <class _CharT> +/* virtual */ messages_byname<_CharT>:: +~messages_byname () +{ + // no-op +} + + } // namespace std Modified: stdcxx/branches/4.2.x/include/loc/_messages.h URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/include/loc/_messages.h?rev=680775&r1=680774&r2=680775&view=diff ============================================================================== --- stdcxx/branches/4.2.x/include/loc/_messages.h (original) +++ stdcxx/branches/4.2.x/include/loc/_messages.h Tue Jul 29 10:06:50 2008 @@ -84,6 +84,7 @@ _EXPLICIT messages (_RWSTD_SIZE_T __refs = 0) : _RW::__rw_facet (__refs) { } + virtual ~messages () _RWSTD_ATTRIBUTE_NOTHROW; catalog open (const string& __fun, const locale& __loc) const { return do_open (__fun, __loc); @@ -136,6 +137,8 @@ : messages<_CharT>(__refs) { this->_C_set_name (__name, _C_namebuf, sizeof _C_namebuf); } + + virtual ~messages_byname () _RWSTD_ATTRIBUTE_NOTHROW; }; } // namespace std Modified: stdcxx/branches/4.2.x/include/loc/_money_put.cc URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/include/loc/_money_put.cc?rev=680775&r1=680774&r2=680775&view=diff ============================================================================== --- stdcxx/branches/4.2.x/include/loc/_money_put.cc (original) +++ stdcxx/branches/4.2.x/include/loc/_money_put.cc Tue Jul 29 10:06:50 2008 @@ -51,6 +51,16 @@ _RW::__rw_facet_id money_put<_CharT, _OutputIter>::id; +// outlined to avoid generating a vtable in each translation unit +// that uses the class +template <class _CharT, class _OutputIter> +/* virtual */ money_put<_CharT, _OutputIter>:: +~money_put () /* nothrow */ +{ + // no-op +} + + template <class _CharT, class _OutputIter> /* private */ _TYPENAME money_put<_CharT, _OutputIter>::iter_type money_put<_CharT, _OutputIter>:: Modified: stdcxx/branches/4.2.x/include/loc/_money_put.h URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/include/loc/_money_put.h?rev=680775&r1=680774&r2=680775&view=diff ============================================================================== --- stdcxx/branches/4.2.x/include/loc/_money_put.h (original) +++ stdcxx/branches/4.2.x/include/loc/_money_put.h Tue Jul 29 10:06:50 2008 @@ -63,6 +63,8 @@ _EXPLICIT money_put (_RWSTD_SIZE_T __ref = 0) : _RW::__rw_facet (__ref) { } + virtual ~money_put () _RWSTD_ATTRIBUTE_NOTHROW; + // 22.2.6.2.1, p1 iter_type put (iter_type __it, bool __intl, ios_base &__flags, char_type __fill, long double __val) const { Modified: stdcxx/branches/4.2.x/include/loc/_moneypunct.cc URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/include/loc/_moneypunct.cc?rev=680775&r1=680774&r2=680775&view=diff ============================================================================== --- stdcxx/branches/4.2.x/include/loc/_moneypunct.cc (original) +++ stdcxx/branches/4.2.x/include/loc/_moneypunct.cc Tue Jul 29 10:06:50 2008 @@ -50,4 +50,15 @@ // no-op } + +// outlined to avoid generating a vtable in each translation unit +// that uses the class +template <class _CharT, bool _Intl> +/* virtual */ moneypunct_byname<_CharT, _Intl>:: +~moneypunct_byname () /* nothrow */ +{ + // no-op +} + + } // namespace std Modified: stdcxx/branches/4.2.x/include/loc/_moneypunct.h URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/include/loc/_moneypunct.h?rev=680775&r1=680774&r2=680775&view=diff ============================================================================== --- stdcxx/branches/4.2.x/include/loc/_moneypunct.h (original) +++ stdcxx/branches/4.2.x/include/loc/_moneypunct.h Tue Jul 29 10:06:50 2008 @@ -213,6 +213,8 @@ : moneypunct<_CharT, _Intl>(__ref) { this->_C_set_name (__name, _C_namebuf, sizeof _C_namebuf); } + + virtual ~moneypunct_byname () _RWSTD_ATTRIBUTE_NOTHROW; }; Modified: stdcxx/branches/4.2.x/include/loc/_numpunct.cc URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/include/loc/_numpunct.cc?rev=680775&r1=680774&r2=680775&view=diff ============================================================================== --- stdcxx/branches/4.2.x/include/loc/_numpunct.cc (original) +++ stdcxx/branches/4.2.x/include/loc/_numpunct.cc Tue Jul 29 10:06:50 2008 @@ -22,7 +22,7 @@ * implied. See the License for the specific language governing * permissions and limitations under the License. * - * Copyright 1994-2006 Rogue Wave Software. + * Copyright 1994-2006 Rogue Wave Software, Inc. * **************************************************************************/ @@ -36,8 +36,11 @@ _RW::__rw_facet_id numpunct<_CharT>::id; +// outlined to avoid generating a vtable in each translation unit +// that uses the class template <class _CharT> -/* virtual */ numpunct<_CharT>::~numpunct () +/* virtual */ numpunct<_CharT>:: +~numpunct () /* nothrow */ { // no-op } @@ -45,4 +48,14 @@ // #endif // _RWSTD_NO_EXT_NUMPUNCT_PRIMARY +// outlined to avoid generating a vtable in each translation unit +// that uses the class +template <class _CharT> +/* virtual */ numpunct_byname<_CharT>:: +~numpunct_byname () /* nothrow */ +{ + // no-op +} + + } // namespace std Modified: stdcxx/branches/4.2.x/include/loc/_numpunct.h URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/include/loc/_numpunct.h?rev=680775&r1=680774&r2=680775&view=diff ============================================================================== --- stdcxx/branches/4.2.x/include/loc/_numpunct.h (original) +++ stdcxx/branches/4.2.x/include/loc/_numpunct.h Tue Jul 29 10:06:50 2008 @@ -238,6 +238,8 @@ : numpunct<_CharT>(__refs) { this->_C_set_name (__name, _C_namebuf, sizeof _C_namebuf); } + + virtual ~numpunct_byname () _RWSTD_ATTRIBUTE_NOTHROW; }; } // namespace std Modified: stdcxx/branches/4.2.x/include/loc/_time_get.cc URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/include/loc/_time_get.cc?rev=680775&r1=680774&r2=680775&view=diff ============================================================================== --- stdcxx/branches/4.2.x/include/loc/_time_get.cc (original) +++ stdcxx/branches/4.2.x/include/loc/_time_get.cc Tue Jul 29 10:06:50 2008 @@ -22,7 +22,7 @@ * implied. See the License for the specific language governing * permissions and limitations under the License. * - * Copyright 1994-2006 Rogue Wave Software. + * Copyright 1994-2006 Rogue Wave Software, Inc. * **************************************************************************/ @@ -50,6 +50,16 @@ _RW::__rw_facet_id time_get<_CharT, _InputIter>::id; +// outlined to avoid generating a vtable in each translation unit +// that uses the class +template <class _CharT, class _InputIter> +/* virtual */ time_get<_CharT, _InputIter>:: +~time_get () +{ + // no-op +} + + template <class _CharT, class _InputIter> _TYPENAME time_get<_CharT, _InputIter>::iter_type time_get<_CharT, _InputIter>:: @@ -356,4 +366,14 @@ } +// outlined to avoid generating a vtable in each translation unit +// that uses the class +template <class _CharT, class _InputIter> +/* virtual */ time_get_byname<_CharT, _InputIter>:: +~time_get_byname () +{ + // no-op +} + + } // namespace std Modified: stdcxx/branches/4.2.x/include/loc/_time_get.h URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/include/loc/_time_get.h?rev=680775&r1=680774&r2=680775&view=diff ============================================================================== --- stdcxx/branches/4.2.x/include/loc/_time_get.h (original) +++ stdcxx/branches/4.2.x/include/loc/_time_get.h Tue Jul 29 10:06:50 2008 @@ -75,6 +75,8 @@ _EXPLICIT time_get (_RWSTD_SIZE_T __ref = 0) : _RW::__rw_facet (__ref) { } + virtual ~time_get () _RWSTD_ATTRIBUTE_NOTHROW; + dateorder date_order() const { return do_date_order(); } @@ -207,6 +209,8 @@ : time_get<_CharT, _InputIter>(__ref) { this->_C_set_name (__name, _C_namebuf, sizeof _C_namebuf); } + + virtual ~time_get_byname () _RWSTD_ATTRIBUTE_NOTHROW; }; } // namespace std Modified: stdcxx/branches/4.2.x/include/loc/_time_put.cc URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/include/loc/_time_put.cc?rev=680775&r1=680774&r2=680775&view=diff ============================================================================== --- stdcxx/branches/4.2.x/include/loc/_time_put.cc (original) +++ stdcxx/branches/4.2.x/include/loc/_time_put.cc Tue Jul 29 10:06:50 2008 @@ -60,6 +60,16 @@ _RW::__rw_facet_id time_put<_CharT, _OutputIter>::id; +// outlined to avoid generating a vtable in each translation unit +// that uses the class +template <class _CharT, class _InputIter> +/* virtual */ time_put<_CharT, _InputIter>:: +~time_put () +{ + // no-op +} + + template <class _CharT, class _OutputIter /* = ostreambuf_iterator<_CharT> */ > /* virtual */ _TYPENAME time_put<_CharT, _OutputIter>::iter_type time_put<_CharT, _OutputIter>:: @@ -173,4 +183,14 @@ } +// outlined to avoid generating a vtable in each translation unit +// that uses the class +template <class _CharT, class _OutputIter> +/* virtual */ time_put_byname<_CharT, _OutputIter>:: +~time_put_byname () +{ + // no-op +} + + } // namespace std Modified: stdcxx/branches/4.2.x/include/loc/_time_put.h URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/include/loc/_time_put.h?rev=680775&r1=680774&r2=680775&view=diff ============================================================================== --- stdcxx/branches/4.2.x/include/loc/_time_put.h (original) +++ stdcxx/branches/4.2.x/include/loc/_time_put.h Tue Jul 29 10:06:50 2008 @@ -61,6 +61,8 @@ _EXPLICIT time_put (_RWSTD_SIZE_T __refs = 0) : _RW::__rw_facet (__refs) { } + virtual ~time_put () _RWSTD_ATTRIBUTE_NOTHROW; + // 22.2.5.3.1, p1 iter_type put (iter_type, ios_base&, char_type, const tm*, const char_type*, const char_type*) const; @@ -106,6 +108,8 @@ : time_put<_CharT, _OutputIter>(__ref) { this->_C_set_name (__name, _C_namebuf, sizeof _C_namebuf); } + + virtual ~time_put_byname () _RWSTD_ATTRIBUTE_NOTHROW; }; } // namespace std