Commit afe6d705 by Paolo Carlini Committed by Paolo Carlini

sso_string_base.h (__sso_string_base<>::_M_assign): Simplify, avoid pointless reallocations.

2005-12-05  Paolo Carlini  <pcarlini@suse.de>

	* include/ext/sso_string_base.h (__sso_string_base<>::_M_assign):
	Simplify, avoid pointless reallocations.

From-SVN: r108063
parent 53917868
2005-12-05 Paolo Carlini <pcarlini@suse.de>
* include/ext/sso_string_base.h (__sso_string_base<>::_M_assign):
Simplify, avoid pointless reallocations.
2005-12-04 Paolo Carlini <pcarlini@suse.de> 2005-12-04 Paolo Carlini <pcarlini@suse.de>
* include/ext/sso_string_base.h (__sso_string_base<>::_M_reserve): * include/ext/sso_string_base.h (__sso_string_base<>::_M_reserve):
......
...@@ -455,22 +455,22 @@ namespace __gnu_cxx ...@@ -455,22 +455,22 @@ namespace __gnu_cxx
{ {
if (this != &__rcs) if (this != &__rcs)
{ {
size_type __size = __rcs._M_length(); const size_type __rsize = __rcs._M_length();
const size_type __capacity = _M_capacity();
_CharT* __tmp = _M_local_data; if (__rsize > __capacity)
if (__size > size_type(_S_local_capacity)) {
__tmp = _M_create(__size, size_type(0)); size_type __new_capacity = __rsize;
_CharT* __tmp = _M_create(__new_capacity, __capacity);
_M_dispose(); _M_dispose();
_M_data(__tmp); _M_data(__tmp);
_M_capacity(__new_capacity);
if (__size) }
_S_copy(_M_data(), __rcs._M_data(), __size);
if (!_M_is_local()) if (__rsize)
_M_capacity(__size); _S_copy(_M_data(), __rcs._M_data(), __rsize);
_M_set_length(__size); _M_set_length(__rsize);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment