2004-01-31 Paolo Carlini <pcarlini@suse.de>
authorpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 31 Jan 2004 15:39:52 +0000 (15:39 +0000)
committerpaolo <paolo@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 31 Jan 2004 15:39:52 +0000 (15:39 +0000)
* include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak.

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

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

index e4b787b..55b8f79 100644 (file)
@@ -1,3 +1,7 @@
+2004-01-31  Paolo Carlini  <pcarlini@suse.de>
+
+       * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak.
+
 2004-01-30  Paolo Carlini  <pcarlini@suse.de>
 
        * testsuite/21_strings/basic_string/cons/char/6.cc: New.
index e35b305..0e80f59 100644 (file)
@@ -514,11 +514,10 @@ namespace std
       // Whew. Seemingly so needy, yet so elemental.
       size_type __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
 
-      if (__size + __malloc_header_size > __pagesize)
+      const size_type __adj_size = __size + __malloc_header_size;
+      if (__adj_size > __pagesize)
        {
-         const size_type __extra = (__pagesize
-                                    - (__size + __malloc_header_size)
-                                    % __pagesize);
+         const size_type __extra = __pagesize - __adj_size % __pagesize;
          __capacity += __extra / sizeof(_CharT);
          // Never allocate a string bigger than _S_max_size.
          if (__capacity > _S_max_size)
@@ -527,9 +526,7 @@ namespace std
        }
       else if (__size > __subpagesize)
        {
-         const size_type __extra = (__subpagesize
-                                    - (__size + __malloc_header_size)
-                                    % __subpagesize);
+         const size_type __extra = __subpagesize - __adj_size % __subpagesize;
          __capacity += __extra / sizeof(_CharT);
          __size = (__capacity + 1) * sizeof(_CharT) + sizeof(_Rep);
        }