OSDN Git Service

2004-10-26 Paolo Carlini <pcarlini@suse.de>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 26 Oct 2004 21:16:58 +0000 (21:16 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 26 Oct 2004 21:16:58 +0000 (21:16 +0000)
* include/bits/basic_string.h (erase(size_type, size_type),
erase(iterator), erase(iterator, iterator)): Call _M_mutate
instead of _M_replace_safe, equivalent when the fourth argument
is zero and simpler.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89608 138bc75d-0d04-0410-961f-82ee72b054a4

libstdc++-v3/ChangeLog
libstdc++-v3/include/bits/basic_string.h

index 6404896..94a2adb 100644 (file)
@@ -1,3 +1,10 @@
+2004-10-26  Paolo Carlini  <pcarlini@suse.de>
+
+       * include/bits/basic_string.h (erase(size_type, size_type),
+       erase(iterator), erase(iterator, iterator)): Call _M_mutate
+       instead of _M_replace_safe, equivalent when the fourth argument
+       is zero and simpler.
+
 2004-10-26  Benjamin Kosnik  <bkoz@redhat.com>
 
        * include/ext/array_allocator.h (array::allocate): Check for valid
index 8171233..34c6fab 100644 (file)
@@ -1140,8 +1140,11 @@ namespace std
       */
       basic_string&
       erase(size_type __pos = 0, size_type __n = npos)
-      { return _M_replace_safe(_M_check(__pos, "basic_string::erase"),
-                              _M_limit(__pos, __n), NULL, size_type(0)); }
+      { 
+       _M_mutate(_M_check(__pos, "basic_string::erase"),
+                 _M_limit(__pos, __n), size_type(0));
+       return *this;
+      }
 
       /**
        *  @brief  Remove one character.
@@ -1157,7 +1160,7 @@ namespace std
        _GLIBCXX_DEBUG_PEDASSERT(__position >= _M_ibegin()
                                 && __position < _M_iend());
        const size_type __pos = __position - _M_ibegin();
-       _M_replace_safe(__pos, size_type(1), NULL, size_type(0));
+       _M_mutate(__pos, size_type(1), size_type(0));
        _M_rep()->_M_set_leaked();
        return _M_ibegin() + __pos;
       }
@@ -1177,7 +1180,7 @@ namespace std
        _GLIBCXX_DEBUG_PEDASSERT(__first >= _M_ibegin() && __first <= __last
                                 && __last <= _M_iend());
         const size_type __pos = __first - _M_ibegin();
-       _M_replace_safe(__pos, __last - __first, NULL, size_type(0));
+       _M_mutate(__pos, __last - __first, size_type(0));
        _M_rep()->_M_set_leaked();
        return _M_ibegin() + __pos;
       }