aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorPaolo Carlini <pcarlini@suse.de>2004-01-31 15:39:52 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2004-01-31 15:39:52 +0000
commit24f330691d685bbae31d59ab79c717e4b02c1467 (patch)
tree8ff4866fed651b004ee60fc8c266820debd28b9a /libstdc++-v3
parent4500e76d5e2c3a60f1852bf20c3a282326222e5c (diff)
downloadgcc-24f330691d685bbae31d59ab79c717e4b02c1467.zip
gcc-24f330691d685bbae31d59ab79c717e4b02c1467.tar.gz
gcc-24f330691d685bbae31d59ab79c717e4b02c1467.tar.bz2
basic_string.tcc (_Rep::_S_create): Minor tweak.
2004-01-31 Paolo Carlini <pcarlini@suse.de> * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak. From-SVN: r77035
Diffstat (limited to 'libstdc++-v3')
-rw-r--r--libstdc++-v3/ChangeLog4
-rw-r--r--libstdc++-v3/include/bits/basic_string.tcc11
2 files changed, 8 insertions, 7 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index e4b787b..55b8f79 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -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.
diff --git a/libstdc++-v3/include/bits/basic_string.tcc b/libstdc++-v3/include/bits/basic_string.tcc
index e35b305..0e80f59 100644
--- a/libstdc++-v3/include/bits/basic_string.tcc
+++ b/libstdc++-v3/include/bits/basic_string.tcc
@@ -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);
}