svn commit: r263272 - in stable: 10/contrib/libc++/include 9/contrib/libc++/include
Dimitry Andric
dim at FreeBSD.org
Mon Mar 17 20:42:46 UTC 2014
Author: dim
Date: Mon Mar 17 20:42:45 2014
New Revision: 263272
URL: http://svnweb.freebsd.org/changeset/base/263272
Log:
MFC r263120:
Pull in r201021 from upstream libc++ trunk:
Fix for PR18735 - self-assignment for map/multimap gives incorrect
results in C++03
(Please note: that is an LLVM PR identifier, not a FreeBSD one.)
Reported by: rakuco
Modified:
stable/9/contrib/libc++/include/map
stable/9/contrib/libc++/include/unordered_map
Directory Properties:
stable/9/contrib/libc++/ (props changed)
Changes in other areas also in this revision:
Modified:
stable/10/contrib/libc++/include/map
stable/10/contrib/libc++/include/unordered_map
Directory Properties:
stable/10/ (props changed)
Modified: stable/9/contrib/libc++/include/map
==============================================================================
--- stable/9/contrib/libc++/include/map Mon Mar 17 19:55:27 2014 (r263271)
+++ stable/9/contrib/libc++/include/map Mon Mar 17 20:42:45 2014 (r263272)
@@ -884,10 +884,12 @@ public:
#if __cplusplus >= 201103L
__tree_ = __m.__tree_;
#else
- __tree_.clear();
- __tree_.value_comp() = __m.__tree_.value_comp();
- __tree_.__copy_assign_alloc(__m.__tree_);
- insert(__m.begin(), __m.end());
+ if (this != &__m) {
+ __tree_.clear();
+ __tree_.value_comp() = __m.__tree_.value_comp();
+ __tree_.__copy_assign_alloc(__m.__tree_);
+ insert(__m.begin(), __m.end());
+ }
#endif
return *this;
}
@@ -1616,10 +1618,12 @@ public:
#if __cplusplus >= 201103L
__tree_ = __m.__tree_;
#else
- __tree_.clear();
- __tree_.value_comp() = __m.__tree_.value_comp();
- __tree_.__copy_assign_alloc(__m.__tree_);
- insert(__m.begin(), __m.end());
+ if (this != &__m) {
+ __tree_.clear();
+ __tree_.value_comp() = __m.__tree_.value_comp();
+ __tree_.__copy_assign_alloc(__m.__tree_);
+ insert(__m.begin(), __m.end());
+ }
#endif
return *this;
}
Modified: stable/9/contrib/libc++/include/unordered_map
==============================================================================
--- stable/9/contrib/libc++/include/unordered_map Mon Mar 17 19:55:27 2014 (r263271)
+++ stable/9/contrib/libc++/include/unordered_map Mon Mar 17 20:42:45 2014 (r263272)
@@ -831,12 +831,14 @@ public:
#if __cplusplus >= 201103L
__table_ = __u.__table_;
#else
- __table_.clear();
- __table_.hash_function() = __u.__table_.hash_function();
- __table_.key_eq() = __u.__table_.key_eq();
- __table_.max_load_factor() = __u.__table_.max_load_factor();
- __table_.__copy_assign_alloc(__u.__table_);
- insert(__u.begin(), __u.end());
+ if (this != &__u) {
+ __table_.clear();
+ __table_.hash_function() = __u.__table_.hash_function();
+ __table_.key_eq() = __u.__table_.key_eq();
+ __table_.max_load_factor() = __u.__table_.max_load_factor();
+ __table_.__copy_assign_alloc(__u.__table_);
+ insert(__u.begin(), __u.end());
+ }
#endif
return *this;
}
@@ -1567,12 +1569,14 @@ public:
#if __cplusplus >= 201103L
__table_ = __u.__table_;
#else
- __table_.clear();
- __table_.hash_function() = __u.__table_.hash_function();
- __table_.key_eq() = __u.__table_.key_eq();
- __table_.max_load_factor() = __u.__table_.max_load_factor();
- __table_.__copy_assign_alloc(__u.__table_);
- insert(__u.begin(), __u.end());
+ if (this != &__u) {
+ __table_.clear();
+ __table_.hash_function() = __u.__table_.hash_function();
+ __table_.key_eq() = __u.__table_.key_eq();
+ __table_.max_load_factor() = __u.__table_.max_load_factor();
+ __table_.__copy_assign_alloc(__u.__table_);
+ insert(__u.begin(), __u.end());
+ }
#endif
return *this;
}
More information about the svn-src-stable-9
mailing list