Piotr Caban : msvcp90: Move basic_string<char>:swap implementation.
Module: wine Branch: master Commit: b7990be894ecac8106edeb737782f5a8eade767a URL: http://source.winehq.org/git/wine.git/?a=commit;h=b7990be894ecac8106edeb7377... Author: Piotr Caban <piotr(a)codeweavers.com> Date: Fri Apr 29 11:14:41 2011 +0200 msvcp90: Move basic_string<char>:swap implementation. --- dlls/msvcp90/string.c | 44 ++++++++++++++++++++++---------------------- 1 files changed, 22 insertions(+), 22 deletions(-) diff --git a/dlls/msvcp90/string.c b/dlls/msvcp90/string.c index b604092..761e612 100644 --- a/dlls/msvcp90/string.c +++ b/dlls/msvcp90/string.c @@ -780,6 +780,28 @@ size_t __thiscall MSVCP_basic_string_char_length(basic_string_char *this) return this->size; } +/* ?swap@?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@std@@QAEXAAV12@@Z */ +/* ?swap@?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@std@@QEAAXAEAV12@@Z */ +DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_swap, 8) +void __thiscall MSVCP_basic_string_char_swap(basic_string_char *this, basic_string_char *str) +{ + if(this != str) { + char tmp[sizeof(this->data)]; + const size_t size = this->size; + const size_t res = this->res; + + memcpy(tmp, this->data.buf, sizeof(this->data)); + memcpy(this->data.buf, str->data.buf, sizeof(this->data)); + memcpy(str->data.buf, tmp, sizeof(this->data)); + + this->size = str->size; + this->res = str->res; + + str->size = size; + str->res = res; + } +} + /* ?append@?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@std@@QAEAAV12(a)ABV12@II(a)Z */ /* ?append@?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@std@@QEAAAEAV12(a)AEBV12@_K1(a)Z */ DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_substr, 16) @@ -1262,28 +1284,6 @@ size_t __thiscall MSVCP_basic_string_wchar_length(basic_string_wchar *this) return this->size; } -/* ?swap@?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@std@@QAEXAAV12@@Z */ -/* ?swap@?$basic_string(a)DU?$char_traits(a)D@std@@V?$allocator(a)D@2@@std@@QEAAXAEAV12@@Z */ -DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_swap, 8) -void __thiscall MSVCP_basic_string_char_swap(basic_string_char *this, basic_string_char *str) -{ - if(this != str) { - char tmp[sizeof(this->data)]; - const size_t size = this->size; - const size_t res = this->res; - - memcpy(tmp, this->data.buf, sizeof(this->data)); - memcpy(this->data.buf, str->data.buf, sizeof(this->data)); - memcpy(str->data.buf, tmp, sizeof(this->data)); - - this->size = str->size; - this->res = str->res; - - str->size = size; - str->res = res; - } -} - /* ?swap@?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@std@@QAEXAAV12@@Z */ /* ?swap@?$basic_string(a)_WU?$char_traits(a)_W@std@@V?$allocator(a)_W@2@@std@@QEAAXAEAV12@@Z */ DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_swap, 8)
participants (1)
-
Alexandre Julliard