From 24f330691d685bbae31d59ab79c717e4b02c1467 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Sat, 31 Jan 2004 15:39:52 +0000 Subject: [PATCH] basic_string.tcc (_Rep::_S_create): Minor tweak. 2004-01-31 Paolo Carlini * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak. From-SVN: r77035 --- libstdc++-v3/ChangeLog | 4 ++++ libstdc++-v3/include/bits/basic_string.tcc | 11 ++++------- 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 + + * include/bits/basic_string.tcc (_Rep::_S_create): Minor tweak. + 2004-01-30 Paolo Carlini * 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); } -- 2.7.4