Author: sebor Date: Thu Jul 5 14:28:06 2007 New Revision: 553643 URL: http://svn.apache.org/viewvc?view=rev&rev=553643 Log: 2007-07-05 Martin Sebor <[EMAIL PROTECTED]>
* stdexcept (range_error, domain_error, runtime_error): Declared virtual destructors instead of relying on the compiler to generate them automatically to avoid generating the class vtable in every translation unit that uses each of the classes. * range_error.cpp: Defined range_error destructor. * domain_error.cpp: Defined domain_error destructor. * runtime_error.cpp: Defined runtime_error destructor. Added: incubator/stdcxx/trunk/src/domain_error.cpp (with props) incubator/stdcxx/trunk/src/range_error.cpp (with props) incubator/stdcxx/trunk/src/runtime_error.cpp (with props) Modified: incubator/stdcxx/trunk/include/stdexcept Modified: incubator/stdcxx/trunk/include/stdexcept URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/include/stdexcept?view=diff&rev=553643&r1=553642&r2=553643 ============================================================================== --- incubator/stdcxx/trunk/include/stdexcept (original) +++ incubator/stdcxx/trunk/include/stdexcept Thu Jul 5 14:28:06 2007 @@ -65,6 +65,8 @@ // extension _EXPLICIT domain_error (const char *__s = 0) : logic_error (__s) { } + + virtual ~domain_error () _THROWS (()); }; @@ -113,6 +115,8 @@ // extension _EXPLICIT runtime_error (const char *__s = 0) : _RW::__rw_exception (__s) { } + + virtual ~runtime_error () _THROWS (()); }; @@ -125,6 +129,8 @@ // extension _EXPLICIT range_error (const char *__s = 0) : runtime_error (__s) { } + + virtual ~range_error () _THROWS (()); }; Added: incubator/stdcxx/trunk/src/domain_error.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/src/domain_error.cpp?view=auto&rev=553643 ============================================================================== --- incubator/stdcxx/trunk/src/domain_error.cpp (added) +++ incubator/stdcxx/trunk/src/domain_error.cpp Thu Jul 5 14:28:06 2007 @@ -0,0 +1,43 @@ +/*************************************************************************** + * + * domain_error.cpp - definitions of class domain_error members + * + * $Id$ + * + *************************************************************************** + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing + * permissions and limitations under the License. + * + **************************************************************************/ + +#define _RWSTD_LIB_SRC + +#include <stdexcept> +#include <rw/_defs.h> + + +_RWSTD_NAMESPACE (std) { + +// outlined to avoid generating a vtable in each translation unit +// that uses the class +/* virtual */ domain_error:: +~domain_error () _THROWS (()) +{ + // no-op +} + +} // namespace std Propchange: incubator/stdcxx/trunk/src/domain_error.cpp ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/stdcxx/trunk/src/domain_error.cpp ------------------------------------------------------------------------------ svn:keywords = Id Added: incubator/stdcxx/trunk/src/range_error.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/src/range_error.cpp?view=auto&rev=553643 ============================================================================== --- incubator/stdcxx/trunk/src/range_error.cpp (added) +++ incubator/stdcxx/trunk/src/range_error.cpp Thu Jul 5 14:28:06 2007 @@ -0,0 +1,43 @@ +/*************************************************************************** + * + * range_error.cpp - definitions of class range_error members + * + * $Id$ + * + *************************************************************************** + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing + * permissions and limitations under the License. + * + **************************************************************************/ + +#define _RWSTD_LIB_SRC + +#include <stdexcept> +#include <rw/_defs.h> + + +_RWSTD_NAMESPACE (std) { + +// outlined to avoid generating a vtable in each translation unit +// that uses the class +/* virtual */ range_error:: +~range_error () _THROWS (()) +{ + // no-op +} + +} // namespace std Propchange: incubator/stdcxx/trunk/src/range_error.cpp ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/stdcxx/trunk/src/range_error.cpp ------------------------------------------------------------------------------ svn:keywords = Id Added: incubator/stdcxx/trunk/src/runtime_error.cpp URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/src/runtime_error.cpp?view=auto&rev=553643 ============================================================================== --- incubator/stdcxx/trunk/src/runtime_error.cpp (added) +++ incubator/stdcxx/trunk/src/runtime_error.cpp Thu Jul 5 14:28:06 2007 @@ -0,0 +1,43 @@ +/*************************************************************************** + * + * runtime_error.cpp - definitions of class runtime_error members + * + * $Id$ + * + *************************************************************************** + * + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed + * with this work for additional information regarding copyright + * ownership. The ASF licenses this file to you under the Apache + * License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + * implied. See the License for the specific language governing + * permissions and limitations under the License. + * + **************************************************************************/ + +#define _RWSTD_LIB_SRC + +#include <stdexcept> +#include <rw/_defs.h> + + +_RWSTD_NAMESPACE (std) { + +// outlined to avoid generating a vtable in each translation unit +// that uses the class +/* virtual */ runtime_error:: +~runtime_error () _THROWS (()) +{ + // no-op +} + +} // namespace std Propchange: incubator/stdcxx/trunk/src/runtime_error.cpp ------------------------------------------------------------------------------ svn:eol-style = native Propchange: incubator/stdcxx/trunk/src/runtime_error.cpp ------------------------------------------------------------------------------ svn:keywords = Id