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


Reply via email to