From 53cc52127bda021bb545f0ff2b37fcbc593046ef Mon Sep 17 00:00:00 2001 From: Peter Dimov Date: Tue, 10 Feb 2004 23:17:12 +0000 Subject: [PATCH] Self-assignment optimization [SVN r22233] --- include/boost/detail/shared_count.hpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/include/boost/detail/shared_count.hpp b/include/boost/detail/shared_count.hpp index 2d14179..a9ba4d2 100644 --- a/include/boost/detail/shared_count.hpp +++ b/include/boost/detail/shared_count.hpp @@ -395,9 +395,13 @@ public: shared_count & operator= (shared_count const & r) // nothrow { sp_counted_base * tmp = r.pi_; - if(tmp != 0) tmp->add_ref_copy(); - if(pi_ != 0) pi_->release(); - pi_ = tmp; + + if(tmp != pi_) + { + if(tmp != 0) tmp->add_ref_copy(); + if(pi_ != 0) pi_->release(); + pi_ = tmp; + } return *this; }