aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIon Gaztanaga <igaztanaga@gmail.com>2006-10-07 08:20:35 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2006-10-07 08:20:35 +0000
commit55ce980dc27b2fef4af65a4ec92b37c229585a82 (patch)
tree2d0d356d055020d007ff0cd0019e14cecab7d677
parentdefaac100c5785445d68a4ad630445fe18d4aa3d (diff)
downloadgcc-55ce980dc27b2fef4af65a4ec92b37c229585a82.zip
gcc-55ce980dc27b2fef4af65a4ec92b37c229585a82.tar.gz
gcc-55ce980dc27b2fef4af65a4ec92b37c229585a82.tar.bz2
stl_tree.h (_Rb_tree<>::erase(const _Key&)): Don't call std::distance unnecessarily.
2006-10-07 Ion Gaztanaga <igaztanaga@gmail.com> Paolo Carlini <pcarlini@suse.de> * include/bits/stl_tree.h (_Rb_tree<>::erase(const _Key&)): Don't call std::distance unnecessarily. Co-Authored-By: Paolo Carlini <pcarlini@suse.de> From-SVN: r117529
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/include/bits/stl_tree.h6
2 files changed, 9 insertions, 3 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index 057d0eb..f37f19a 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2006-10-07 Ion Gaztanaga <igaztanaga@gmail.com>
+ Paolo Carlini <pcarlini@suse.de>
+
+ * include/bits/stl_tree.h (_Rb_tree<>::erase(const _Key&)): Don't
+ call std::distance unnecessarily.
+
2006-10-06 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/29368
diff --git a/libstdc++-v3/include/bits/stl_tree.h b/libstdc++-v3/include/bits/stl_tree.h
index e1efe0a..96b7a52 100644
--- a/libstdc++-v3/include/bits/stl_tree.h
+++ b/libstdc++-v3/include/bits/stl_tree.h
@@ -1269,10 +1269,10 @@ _GLIBCXX_BEGIN_NAMESPACE(std)
_Rb_tree<_Key, _Val, _KeyOfValue, _Compare, _Alloc>::
erase(const _Key& __x)
{
- pair<iterator,iterator> __p = equal_range(__x);
- size_type __n = std::distance(__p.first, __p.second);
+ pair<iterator, iterator> __p = equal_range(__x);
+ const size_type __old_size = size();
erase(__p.first, __p.second);
- return __n;
+ return __old_size - size();
}
template<typename _Key, typename _Val, typename _KoV,