summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-01-14 05:16:38 +0000
committernanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1999-01-14 05:16:38 +0000
commit35055331d27ea06e8d9a6caf530c158088f41464 (patch)
treecf527c33edb838b77bd33266b1d30d4e42664262
parent51f3e0f35c133ea2287cae3550db378966ed2087 (diff)
downloadATCD-35055331d27ea06e8d9a6caf530c158088f41464.tar.gz
Revert my previous change.
-rw-r--r--ace/OS.h8
-rw-r--r--ace/config-g++-common.h10
-rw-r--r--ace/config-osf1-4.0.h2
-rw-r--r--ace/config-psos-diab.h2
-rw-r--r--ace/config-psos-tm.h2
5 files changed, 10 insertions, 14 deletions
diff --git a/ace/OS.h b/ace/OS.h
index 3e4f100809b..3e1e154dd4a 100644
--- a/ace/OS.h
+++ b/ace/OS.h
@@ -6031,7 +6031,7 @@ private:
# define ACE_DES_FREE(POINTER,DEALLOCATOR,CLASS) \
do { POINTER->~CLASS (); DEALLOCATOR (POINTER); } while (0)
-# if !defined (ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR) && !defined (__GNUG__)
+# if defined (ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR)
# define ACE_DES_NOFREE_TEMPLATE (POINTER,T_CLASS,T_PARAMETER) \
POINTER->~ T_CLASS ()
# define ACE_DES_FREE_TEMPLATE(POINTER,DEALLOCATOR,T_CLASS,T_PARAMETER) \
@@ -6042,11 +6042,7 @@ private:
do { POINTER->~ T_CLASS (); \
DEALLOCATOR (POINTER); \
} while (0)
-# else /* ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR */
-// @@ Notice that the workaround here only eliminate the compilation errors.
-// It won't fix the "real problem." If the destructor is virtual, it won't
-// work corrrectly.
-// WARNING: memory leak possible. The compiler needs to be fixed!!!
+# else /* ! ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR */
# define ACE_DES_NOFREE_TEMPLATE (POINTER,T_CLASS,T_PARAMETER) \
POINTER -> T_CLASS T_PARAMETER ::~ T_CLASS ()
diff --git a/ace/config-g++-common.h b/ace/config-g++-common.h
index 9347a9e932c..453eda39af5 100644
--- a/ace/config-g++-common.h
+++ b/ace/config-g++-common.h
@@ -27,11 +27,11 @@
# define ACE_HAS_TYPENAME_KEYWORD
# endif /* __GNUC__ >= 2.90 */
-// # if __GNUC__ == 2 && __GNUC_MINOR__ >= 91
-// // This is only needed with egcs 1.1 (egcs-2.91.57). It can't be
-// // used with older versions.
-// # define ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR
-// # endif /* __GNUC__ >= 2.91 */
+# if __GNUC__ == 2 && __GNUC_MINOR__ >= 91
+ // This is only needed with egcs 1.1 (egcs-2.91.57). It can't be
+ // used with older versions.
+# define ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR
+# endif /* __GNUC__ >= 2.91 */
# if __GNUC__ == 2 && __GNUC_MINOR__ != 9 && __GNUC_MINOR__ != 91
# // g++ 2.9 and egcs 2.91 apparently have a bug with this . . .
diff --git a/ace/config-osf1-4.0.h b/ace/config-osf1-4.0.h
index 613dc90f7aa..d2e1f0fef50 100644
--- a/ace/config-osf1-4.0.h
+++ b/ace/config-osf1-4.0.h
@@ -41,7 +41,7 @@
# define ACE_HAS_GNU_CSTRING_H
# define ACE_HAS_REENTRANT_FUNCTIONS
#elif defined (__DECCXX)
-// # define ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR
+# define ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR
# define ACE_LACKS_LINEBUFFERED_STREAMBUF
# define ACE_LACKS_SIGNED_CHAR
# define DEC_CXX
diff --git a/ace/config-psos-diab.h b/ace/config-psos-diab.h
index e526c6c1281..a1e7a871e54 100644
--- a/ace/config-psos-diab.h
+++ b/ace/config-psos-diab.h
@@ -43,7 +43,7 @@
#define ACE_HAS_BROKEN_CONDITIONAL_STRING_CASTS
-// #define ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR
+#define ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR
# define ACE_HAS_BROKEN_NOOP_DTORS
diff --git a/ace/config-psos-tm.h b/ace/config-psos-tm.h
index 64837182ddd..b42558f45b3 100644
--- a/ace/config-psos-tm.h
+++ b/ace/config-psos-tm.h
@@ -24,7 +24,7 @@
#define ACE_HAS_CPLUSPLUS_HEADERS
-// #define ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR
+#define ACE_HAS_BROKEN_EXPLICIT_DESTRUCTOR
// Template instantiation definitions
// #define ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION_FILE