From 7853a3769da2b18bc6b354e935a0fcf8b0af1dec Mon Sep 17 00:00:00 2001 From: Jonathan Wakely Date: Mon, 17 Dec 2007 23:56:23 +0000 Subject: [PATCH] locale_facets.tcc (has_facet, use_facet): Simplify RTTI checks. 2007-12-17 Jonathan Wakely * include/bits/locale_facets.tcc (has_facet, use_facet): Simplify RTTI checks. From-SVN: r131022 --- libstdc++-v3/ChangeLog | 5 +++++ libstdc++-v3/include/bits/locale_facets.tcc | 16 +++------------- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index e6b11f9b4bff..a0924c2009c8 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,8 @@ +2007-12-17 Jonathan Wakely + + * include/bits/locale_facets.tcc (has_facet, use_facet): Simplify + RTTI checks. + 2007-12-17 Benjamin Kosnik * testsuite/22_locale/global_templates/ diff --git a/libstdc++-v3/include/bits/locale_facets.tcc b/libstdc++-v3/include/bits/locale_facets.tcc index ad8bff30bcf7..870ac3de838c 100644 --- a/libstdc++-v3/include/bits/locale_facets.tcc +++ b/libstdc++-v3/include/bits/locale_facets.tcc @@ -90,17 +90,8 @@ _GLIBCXX_BEGIN_NAMESPACE(std) { const size_t __i = _Facet::id._M_id(); const locale::facet** __facets = __loc._M_impl->_M_facets; - bool __b(false); - try - { - if (__i < __loc._M_impl->_M_facets_size - && dynamic_cast(__facets[__i]) != NULL) - __b = true; - - } - catch (...) - { } - return __b; + return __i < __loc._M_impl->_M_facets_size + && dynamic_cast(__facets[__i]) != NULL; } /** @@ -122,8 +113,7 @@ _GLIBCXX_BEGIN_NAMESPACE(std) { const size_t __i = _Facet::id._M_id(); const locale::facet** __facets = __loc._M_impl->_M_facets; - if (__i >= __loc._M_impl->_M_facets_size - || dynamic_cast(__facets[__i]) == NULL) + if (__i >= __loc._M_impl->_M_facets_size || __facets[__i] == NULL) __throw_bad_cast(); return dynamic_cast(*__facets[__i]); } -- 2.47.2