Author: sebor
Date: Fri Aug 8 15:41:56 2008
New Revision: 684133
URL: http://svn.apache.org/viewvc?rev=684133&view=rev
Log:
2008-08-08 Martin Sebor <[EMAIL PROTECTED]>
STDCXX-998
* include/loc/_numpunct.h (~numpunct): Added attribute nothrow
to help optimizers generate better code.
* include/loc/_facet.h (~__rw_facet): Same.
(__rw_facet, __rw_id::_C_init, __rw_release_facet_data): Declared
with the empty exception specification.
* include/loc/_ctype.h, src/ctype.cpp, src/wctype.cpp (ctype): Same.
(~ctype, ~ctype_byname): Added attribute nothrow.
* include/loc/_codecvt.h, src/codecvt.cpp, src/wcodecvt.cpp (codecvt):
Declared constructors with the empty exception specification.
* src/collate.cpp (__rw_get_cat): Same.
* src/locale_body.h, src/locale_body.cpp (~__rw_locale, _C_is_managed,
_C_LC2category, _C_LC2facet_bits, _C_check_category, _C_get_facet_type,
_C_get_facet_inx, __rw_get_cat, __rw_is_C): Same.
* src/facet.cpp (__rw_get_cat, __rw_get_cat_name, __rw_facet,
cmpfacets, cmpfacet, __rw_release_facet_data, __rw_facet_id::_C_init):
Same.
(~__rw_facet): Added attribute nothrow.
Modified:
stdcxx/branches/4.2.x/include/loc/_codecvt.h
stdcxx/branches/4.2.x/include/loc/_ctype.h
stdcxx/branches/4.2.x/include/loc/_facet.h
stdcxx/branches/4.2.x/include/loc/_numpunct.h
stdcxx/branches/4.2.x/src/codecvt.cpp
stdcxx/branches/4.2.x/src/collate.cpp
stdcxx/branches/4.2.x/src/ctype.cpp
stdcxx/branches/4.2.x/src/facet.cpp
stdcxx/branches/4.2.x/src/locale_body.cpp
stdcxx/branches/4.2.x/src/locale_body.h
stdcxx/branches/4.2.x/src/wcodecvt.cpp
stdcxx/branches/4.2.x/src/wctype.cpp
Modified: stdcxx/branches/4.2.x/include/loc/_codecvt.h
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/include/loc/_codecvt.h?rev=684133&r1=684132&r2=684133&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/include/loc/_codecvt.h (original)
+++ stdcxx/branches/4.2.x/include/loc/_codecvt.h Fri Aug 8 15:41:56 2008
@@ -188,7 +188,7 @@
typedef char intern_type;
typedef _RWSTD_MBSTATE_T state_type;
- _EXPLICIT codecvt (_RWSTD_SIZE_T = 0);
+ _EXPLICIT codecvt (_RWSTD_SIZE_T = 0) _THROWS (());
virtual ~codecvt () _RWSTD_ATTRIBUTE_NOTHROW;
@@ -332,7 +332,7 @@
public:
- _EXPLICIT codecvt (_RWSTD_SIZE_T = 0);
+ _EXPLICIT codecvt (_RWSTD_SIZE_T = 0) _THROWS (());
virtual ~codecvt () _RWSTD_ATTRIBUTE_NOTHROW;
Modified: stdcxx/branches/4.2.x/include/loc/_ctype.h
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/include/loc/_ctype.h?rev=684133&r1=684132&r2=684133&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/include/loc/_ctype.h (original)
+++ stdcxx/branches/4.2.x/include/loc/_ctype.h Fri Aug 8 15:41:56 2008
@@ -242,7 +242,8 @@
_RWSTD_STATIC_CONST (_RWSTD_SIZE_T, table_size = 256);
- _EXPLICIT ctype (const mask* = 0, bool = false, _RWSTD_SIZE_T = 0);
+ _EXPLICIT
+ ctype (const mask* = 0, bool = false, _RWSTD_SIZE_T = 0) _THROWS (());
const char_type* is (const char_type*, const char_type*, mask*) const;
@@ -292,7 +293,7 @@
static const mask* classic_table () _THROWS (());
- virtual ~ctype ();
+ virtual ~ctype () _RWSTD_ATTRIBUTE_NOTHROW;
virtual const char_type*
do_toupper (char_type*, const char_type*) const;
@@ -421,7 +422,7 @@
typedef wchar_t char_type;
- _EXPLICIT ctype (_RWSTD_SIZE_T = 0);
+ _EXPLICIT ctype (_RWSTD_SIZE_T = 0) _THROWS (());
// 22.2.1.1.1, p1
bool is (mask __m, char_type __c) const {
@@ -484,7 +485,7 @@
protected:
- virtual ~ctype ();
+ virtual ~ctype () _RWSTD_ATTRIBUTE_NOTHROW;
// 22.2.1.1.2, p1
virtual bool do_is (mask, char_type) const;
@@ -601,7 +602,7 @@
protected:
- virtual ~ctype_byname ();
+ virtual ~ctype_byname () _RWSTD_ATTRIBUTE_NOTHROW;
virtual bool
do_is (mask, char_type) const;
Modified: stdcxx/branches/4.2.x/include/loc/_facet.h
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/include/loc/_facet.h?rev=684133&r1=684132&r2=684133&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/include/loc/_facet.h (original)
+++ stdcxx/branches/4.2.x/include/loc/_facet.h Fri Aug 8 15:41:56 2008
@@ -64,9 +64,9 @@
#endif // !MSVC || 5 <= stdcxx version
- _EXPLICIT __rw_facet (_RWSTD_SIZE_T = 0);
+ _EXPLICIT __rw_facet (_RWSTD_SIZE_T = 0) _THROWS (());
- virtual ~__rw_facet ();
+ virtual ~__rw_facet () _RWSTD_ATTRIBUTE_NOTHROW;
public:
@@ -263,7 +263,7 @@
// initialize id to the given value if within the valid range
// otherwise to the next value generated by the id generator
- _RWSTD_SIZE_T _C_init () const;
+ _RWSTD_SIZE_T _C_init () const _THROWS (());
_MUTABLE _RWSTD_SIZE_T _C_id; // unique id > 0
@@ -278,7 +278,7 @@
__rw_get_facet_data (int, _RWSTD_SIZE_T&, const char*, const char* = 0);
// its counterpart - does the database unmapping
-void __rw_release_facet_data (const void*, _RWSTD_SIZE_T);
+void __rw_release_facet_data (const void*, _RWSTD_SIZE_T) _THROWS (());
} // namespace __rw
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=684133&r1=684132&r2=684133&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/include/loc/_numpunct.h (original)
+++ stdcxx/branches/4.2.x/include/loc/_numpunct.h Fri Aug 8 15:41:56 2008
@@ -63,7 +63,7 @@
_EXPLICIT numpunct (_RWSTD_SIZE_T __ref = 0)
: _RW::__rw_facet (__ref), _C_flags (0) { }
- virtual ~numpunct ();
+ virtual ~numpunct () _RWSTD_ATTRIBUTE_NOTHROW;
// 22.2.3.1.1, p1
char_type decimal_point () const;
Modified: stdcxx/branches/4.2.x/src/codecvt.cpp
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/src/codecvt.cpp?rev=684133&r1=684132&r2=684133&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/src/codecvt.cpp (original)
+++ stdcxx/branches/4.2.x/src/codecvt.cpp Fri Aug 8 15:41:56 2008
@@ -98,7 +98,7 @@
codecvt<char, char, _RWSTD_MBSTATE_T>::
-codecvt (size_t refs /* = 0 */)
+codecvt (size_t refs /* = 0 */) _THROWS (())
: _RW::__rw_facet (refs), _C_always_noconv (-1)
{
// empty
@@ -108,7 +108,7 @@
// outlined to avoid generating a vtable in each translation unit
// that uses the class
/* virtual */ codecvt<char, char, _RWSTD_MBSTATE_T>::
-~codecvt ()
+~codecvt () // nothrow
{
// no-op
}
@@ -279,7 +279,7 @@
// outlined to avoid generating a vtable in each translation unit
// that uses the class
/* virtual */ codecvt_byname<char, char, _RWSTD_MBSTATE_T>::
-~codecvt_byname ()
+~codecvt_byname () // nothrow
{
// no-op
}
Modified: stdcxx/branches/4.2.x/src/collate.cpp
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/src/collate.cpp?rev=684133&r1=684132&r2=684133&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/src/collate.cpp (original)
+++ stdcxx/branches/4.2.x/src/collate.cpp Fri Aug 8 15:41:56 2008
@@ -130,7 +130,7 @@
// computes LC_XXX category from a numeric facet id, returns the
// LC_XXX category for standard facets, LC_ALL for all others
-int __rw_get_cat (int);
+int __rw_get_cat (int) _THROWS (());
#ifndef _RWSTD_NO_WCHAR_T
Modified: stdcxx/branches/4.2.x/src/ctype.cpp
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/src/ctype.cpp?rev=684133&r1=684132&r2=684133&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/src/ctype.cpp (original)
+++ stdcxx/branches/4.2.x/src/ctype.cpp Fri Aug 8 15:41:56 2008
@@ -657,7 +657,8 @@
_RW::__rw_facet_id ctype<char>::id;
-ctype<char>::ctype (const mask *tab, bool del, _RWSTD_SIZE_T refs)
+ctype<char>::
+ctype (const mask *tab, bool del, _RWSTD_SIZE_T refs) _THROWS (())
: _RW::__rw_facet (refs),
_C_mask_tab (tab),
_C_delete_it (del)
@@ -677,7 +678,7 @@
}
-ctype<char>::~ctype ()
+ctype<char>::~ctype () // nothrow
{
if (_C_delete_it) {
delete[] _RWSTD_CONST_CAST (mask*, _C_mask_tab);
Modified: stdcxx/branches/4.2.x/src/facet.cpp
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/src/facet.cpp?rev=684133&r1=684132&r2=684133&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/src/facet.cpp (original)
+++ stdcxx/branches/4.2.x/src/facet.cpp Fri Aug 8 15:41:56 2008
@@ -22,7 +22,7 @@
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*
- * Copyright 2001-2006 Rogue Wave Software.
+ * Copyright 2001-2006 Rogue Wave Software, Inc.
*
**************************************************************************/
@@ -53,11 +53,11 @@
// computes LC_XXX category from a numeric facet id, returns the
// LC_XXX category for standard facets, LC_ALL for all others
-int __rw_get_cat (int);
+int __rw_get_cat (int) _THROWS (());
// retrieves the literal name for a given category value
static inline
-const char* __rw_get_cat_name (int category)
+const char* __rw_get_cat_name (int category) _THROWS (())
{
// FIXME: merge this struct and lookup with __rw_cats in rw_locale.cpp
// maps LC_XXX category values to their names
@@ -104,14 +104,14 @@
-__rw_facet::__rw_facet (_RWSTD_SIZE_T __ref /* = 0 */)
+__rw_facet::__rw_facet (_RWSTD_SIZE_T __ref /* = 0 */) _THROWS (())
: _C_name (0), _C_buf (0), _C_impdata (0), _C_impsize (0),
_C_type (_C_unknown), _C_ref (__ref), _C_pid (0 /* invalid */)
{
}
-__rw_facet::~__rw_facet ()
+__rw_facet::~__rw_facet () // nothrow
{
_RWSTD_ASSERT (!_C_name && !_C_buf || _C_name && _C_buf);
@@ -297,7 +297,7 @@
extern "C" {
// compares two facets, returns 0 if equal, -1 if less, +1 otherwise
-static int cmpfacets (const void *pv1, const void *pv2)
+static int cmpfacets (const void *pv1, const void *pv2) _THROWS (())
{
_RWSTD_ASSERT (0 != pv1);
_RWSTD_ASSERT (0 != pv2);
@@ -325,7 +325,7 @@
};
// compares a key to a facet, returns 0 if equal, -1 if less, +1 otherwise
-static int cmpfacet (const void *pv1, const void *pv2)
+static int cmpfacet (const void *pv1, const void *pv2) _THROWS (())
{
_RWSTD_ASSERT (0 != pv1);
_RWSTD_ASSERT (0 != pv2);
@@ -582,7 +582,7 @@
}
// Its counterpart - does the database unmapping
-void __rw_release_facet_data (const void* pv, _RWSTD_SIZE_T sz)
+void __rw_release_facet_data (const void* pv, _RWSTD_SIZE_T sz) _THROWS (())
{
__rw_munmap (pv, sz);
}
@@ -596,7 +596,7 @@
static _RWSTD_SIZE_T __rw_id_gen = __rw_facet::_C_last_type + 1;
-_RWSTD_SIZE_T __rw_facet_id::_C_init () const
+_RWSTD_SIZE_T __rw_facet_id::_C_init () const _THROWS (())
{
// return immediately if already initialized
if (_C_id)
Modified: stdcxx/branches/4.2.x/src/locale_body.cpp
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/src/locale_body.cpp?rev=684133&r1=684132&r2=684133&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/src/locale_body.cpp (original)
+++ stdcxx/branches/4.2.x/src/locale_body.cpp Fri Aug 8 15:41:56 2008
@@ -492,7 +492,7 @@
size_t __rw_locale::
-_C_get_facet_inx (size_t id) const
+_C_get_facet_inx (size_t id) const _THROWS (())
{
// verify that facet's id is initialized
_RWSTD_ASSERT (id);
@@ -607,7 +607,7 @@
// convert a LC_XXX constant to a locale::category value
/* static */ int __rw_locale::
-_C_LC2category (int cat)
+_C_LC2category (int cat) _THROWS (())
{
switch (cat) {
case _RWSTD_LC_ALL: cat = __rw_cat_all; break;
@@ -630,7 +630,7 @@
// convert a LC_XXX constant to an internal bitset of facets
/* static */ int __rw_locale::
-_C_LC2facet_bits (int cat)
+_C_LC2facet_bits (int cat) _THROWS (())
{
int bits;
@@ -671,7 +671,7 @@
__rw_locale::
-~__rw_locale ()
+~__rw_locale () _THROWS (())
{
// verify that object isn't being destroyed prematurely
_RWSTD_ASSERT (0 == _C_ref);
@@ -741,7 +741,7 @@
// compares two locales, returns 0 if equal, -1 if less, +1 otherwise
static int
-cmplocales (const void *pv1, const void *pv2)
+cmplocales (const void *pv1, const void *pv2) _THROWS (())
{
_RWSTD_ASSERT (0 != pv1);
_RWSTD_ASSERT (0 != pv2);
@@ -760,7 +760,7 @@
// compares a key to a locale, returns 0 if equal, -1 if less, +1 otherwise
static int
-cmplocale (const void *pv1, const void *pv2)
+cmplocale (const void *pv1, const void *pv2) _THROWS (())
{
_RWSTD_ASSERT (0 != pv1);
_RWSTD_ASSERT (0 != pv2);
@@ -1053,7 +1053,7 @@
// if (cat == locale::none) holds, returns true iff the entire
// locale body is being managed
bool __rw_locale::
-_C_is_managed (int cat) const
+_C_is_managed (int cat) const _THROWS (())
{
// `cat' must be a valid category
_RWSTD_ASSERT (_C_check_category (_C_LC2category (cat)));
Modified: stdcxx/branches/4.2.x/src/locale_body.h
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/src/locale_body.h?rev=684133&r1=684132&r2=684133&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/src/locale_body.h (original)
+++ stdcxx/branches/4.2.x/src/locale_body.h Fri Aug 8 15:41:56 2008
@@ -150,7 +150,7 @@
_C_construct (__l1, __l2, __cat);
}
- ~__rw_locale ();
+ ~__rw_locale () _THROWS (());
// returns the name of the locale
const char* _C_get_name () const {
@@ -180,7 +180,7 @@
// get a string of locale names, one for each installed standard
// facet's category; will dynamically allocate string if buf is 0
- char* _C_get_cat_names (char*, _RWSTD_SIZE_T) const;
+ char* _C_get_cat_names (char*, _RWSTD_SIZE_T) const /* may throw */;
// returns true iff all categories of facets (given by the bitmap)
// in *this are being globally managed, i.e., iff all of *this facets
@@ -188,19 +188,20 @@
// (when the category is locale::none, the function fails for all
// locales that contain any user-defined facets; otherwise only
// standard facets are considered)
- bool _C_is_managed (int) const;
+ bool _C_is_managed (int) const _THROWS (());
// converts a LC_XXX constant to a locale::category value
- static int _C_LC2category (int);
+ static int _C_LC2category (int) _THROWS (());
// converts a LC_XXX constant to an internal bitset of facets
- static int _C_LC2facet_bits (int);
+ static int _C_LC2facet_bits (int) _THROWS (());
- static bool _C_check_category (int);
+ static bool _C_check_category (int) _THROWS (());
// returns the type of the standard facet object or `unknown'
// if the facet is of a user-defined type
- static __rw_facet::_C_facet_type _C_get_facet_type (const __rw_facet&);
+ static __rw_facet::_C_facet_type
+ _C_get_facet_type (const __rw_facet&) _THROWS (());
private:
@@ -230,11 +231,13 @@
// -1 if the facet isn't installed
// value < _C_n_std_facets for a standard facet
// value >= _C_n_std_facets otherwise (i.e., for user defined facets)
- _RWSTD_SIZE_T _C_get_facet_inx (_RWSTD_SIZE_T) const;
+ _RWSTD_SIZE_T _C_get_facet_inx (_RWSTD_SIZE_T) const _THROWS (());
};
-/* static */ inline bool __rw_locale::_C_check_category (int cat)
+/* static */ inline bool
+__rw_locale::
+_C_check_category (int cat) _THROWS (())
{
// `cat' is assumed to be a C++ locale category (i.e., not an LC_XXX)
_RWSTD_ASSERT (cat == _C_LC2category (cat));
@@ -244,7 +247,8 @@
/* static */ inline __rw_facet::_C_facet_type
-__rw_locale::_C_get_facet_type (const __rw_facet &__facet)
+__rw_locale::
+_C_get_facet_type (const __rw_facet &__facet) _THROWS (())
{
_RWSTD_ASSERT (0 != __facet._C_pid);
_RWSTD_ASSERT (0 != *__facet._C_pid);
@@ -278,7 +282,7 @@
// computes LC_XXX category from a numeric facet id, returns the
// LC_XXX category for standard facets, LC_ALL for all others
-inline int __rw_get_cat (int id)
+inline int __rw_get_cat (int id) _THROWS (())
{
#if _RWSTD_LC_MIN >= 0 && _RWSTD_LC_MAX < _RWSTD_UCHAR_MAX
typedef unsigned char LC_type;
@@ -326,7 +330,7 @@
// returns true iff `name' is a name of the classic C locale
-static inline bool __rw_is_C (const char *name)
+static inline bool __rw_is_C (const char *name) _THROWS (())
{
_RWSTD_ASSERT (0 != name);
Modified: stdcxx/branches/4.2.x/src/wcodecvt.cpp
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/src/wcodecvt.cpp?rev=684133&r1=684132&r2=684133&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/src/wcodecvt.cpp (original)
+++ stdcxx/branches/4.2.x/src/wcodecvt.cpp Fri Aug 8 15:41:56 2008
@@ -1025,7 +1025,7 @@
/* explicit */ codecvt<wchar_t, char, _RWSTD_MBSTATE_T>::
-codecvt (size_t __ref /* = 0 */)
+codecvt (size_t __ref /* = 0 */) _THROWS (())
: _RW::__rw_facet (__ref)
{
// no-op
@@ -1035,7 +1035,7 @@
// outlined to avoid generating a vtable in each translation unit
// that uses the class
/* virtual */ codecvt<wchar_t, char, _RWSTD_MBSTATE_T>::
-~codecvt ()
+~codecvt () // nothrow
{
// no-op
}
@@ -1316,8 +1316,8 @@
// outlined to avoid generating a vtable in each translation unit
// that uses the class
-/* virtual */ codecvt_byname<wchar_t, char, _RWSTD_MBSTATE_T>::~
-codecvt_byname ()
+/* virtual */ codecvt_byname<wchar_t, char, _RWSTD_MBSTATE_T>::
+~codecvt_byname () // nothrow
{
// no-op
}
Modified: stdcxx/branches/4.2.x/src/wctype.cpp
URL:
http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/src/wctype.cpp?rev=684133&r1=684132&r2=684133&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/src/wctype.cpp (original)
+++ stdcxx/branches/4.2.x/src/wctype.cpp Fri Aug 8 15:41:56 2008
@@ -22,7 +22,7 @@
* implied. See the License for the specific language governing
* permissions and limitations under the License.
*
- * Copyright 2001-2005 Rogue Wave Software.
+ * Copyright 2001-2005 Rogue Wave Software, Inc.
*
**************************************************************************/
@@ -421,7 +421,7 @@
_RW::__rw_facet_id ctype<wchar_t>::id;
-ctype<wchar_t>::ctype (_RWSTD_SIZE_T ref)
+ctype<wchar_t>::ctype (_RWSTD_SIZE_T ref) _THROWS (())
: _RW::__rw_facet (ref)
{
#ifndef _RWSTD_NO_EQUAL_CTYPE_MASK