diff options
author | Johnny Willemsen <jwillemsen@remedy.nl> | 2017-08-01 11:49:42 +0200 |
---|---|---|
committer | Johnny Willemsen <jwillemsen@remedy.nl> | 2017-08-01 11:49:42 +0200 |
commit | 81dc0cd3c3e79cc20dc4fc8aa74c2efef5e12d03 (patch) | |
tree | de0a32c639de5ca8d97229a6b3fed9b5fea6c9e1 /ACE | |
parent | 277d69d4c1f71a874d34e135a684debf70b4c9c2 (diff) | |
download | ATCD-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.cpp | 9 | ||||
-rw-r--r-- | ACE/ace/Array_Map.h | 2 |
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; |