msvcp90: Move basic_string<char>:swap implementation.
This commit is contained in:
parent
46f1d8a865
commit
b7990be894
|
@ -780,6 +780,28 @@ size_t __thiscall MSVCP_basic_string_char_length(basic_string_char *this)
|
||||||
return this->size;
|
return this->size;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXAAV12@@Z */
|
||||||
|
/* ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@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@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z */
|
/* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z */
|
||||||
/* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
|
/* ?append@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAAAEAV12@AEBV12@_K1@Z */
|
||||||
DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_append_substr, 16)
|
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;
|
return this->size;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXAAV12@@Z */
|
|
||||||
/* ?swap@?$basic_string@DU?$char_traits@D@std@@V?$allocator@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@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXAAV12@@Z */
|
/* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXAAV12@@Z */
|
||||||
/* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEAV12@@Z */
|
/* ?swap@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAAXAEAV12@@Z */
|
||||||
DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_swap, 8)
|
DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_swap, 8)
|
||||||
|
|
Loading…
Reference in New Issue