summaryrefslogtreecommitdiff
path: root/ACE
diff options
context:
space:
mode:
authorJohnny Willemsen <jwillemsen@remedy.nl>2017-08-01 11:49:42 +0200
committerJohnny Willemsen <jwillemsen@remedy.nl>2017-08-01 11:49:42 +0200
commit81dc0cd3c3e79cc20dc4fc8aa74c2efef5e12d03 (patch)
treede0a32c639de5ca8d97229a6b3fed9b5fea6c9e1 /ACE
parent277d69d4c1f71a874d34e135a684debf70b4c9c2 (diff)
downloadATCD-81dc0cd3c3e79cc20dc4fc8aa74c2efef5e12d03.tar.gz
Add workaround for broken bcc32, see RSP-15011
* ACE/ace/Array_Map.cpp: * ACE/ace/Array_Map.h:
Diffstat (limited to 'ACE')
-rw-r--r--ACE/ace/Array_Map.cpp9
-rw-r--r--ACE/ace/Array_Map.h2
2 files changed, 9 insertions, 2 deletions
diff --git a/ACE/ace/Array_Map.cpp b/ACE/ace/Array_Map.cpp
index ad441a65cad..4917c51e42f 100644
--- a/ACE/ace/Array_Map.cpp
+++ b/ACE/ace/Array_Map.cpp
@@ -43,8 +43,15 @@ ACE_Array_Map<Key, Value, EqualTo, Alloc>::ACE_Array_Map (
template<typename Key, typename Value, class EqualTo, class Alloc>
ACE_Array_Map<Key, Value, EqualTo, Alloc>::~ACE_Array_Map (void)
{
- for (size_t idx = 0; idx != capacity_; ++idx) {
+ for (size_t idx = 0; idx != capacity_; ++idx)
+ {
+#if defined (ACE_HAS_BCC32)
+ using std::pair;
+ (nodes_ + idx)->~pair<key_type, mapped_type>();
+#else
(nodes_ + idx)->~value_type();
+#endif
+
}
alloc_.deallocate(this->nodes_, capacity_);
diff --git a/ACE/ace/Array_Map.h b/ACE/ace/Array_Map.h
index d9dae1190eb..c68e7a1fec1 100644
--- a/ACE/ace/Array_Map.h
+++ b/ACE/ace/Array_Map.h
@@ -101,7 +101,7 @@ public:
typedef Key key_type;
typedef Value mapped_type;
typedef Value data_type;
- typedef std::pair<key_type, mapped_type> value_type;
+ typedef std::pair<key_type, mapped_type> value_type;
typedef Alloc allocator_type;
typedef value_type & reference;
typedef value_type const & const_reference;