Module: wine Branch: master Commit: b9f544a2ab21956b1313d3919d04871191a9a365 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b9f544a2ab21956b1313d3919d...
Author: Piotr Caban piotr@codeweavers.com Date: Wed Nov 16 16:27:47 2011 +0100
msvcp90: Added basic_string::copy implementation.
---
dlls/msvcp90/msvcp90.spec | 8 ++++---- dlls/msvcp90/string.c | 26 ++++++++++++++++++++++---- 2 files changed, 26 insertions(+), 8 deletions(-)
diff --git a/dlls/msvcp90/msvcp90.spec b/dlls/msvcp90/msvcp90.spec index ce6fea7..7c44668 100644 --- a/dlls/msvcp90/msvcp90.spec +++ b/dlls/msvcp90/msvcp90.spec @@ -3168,12 +3168,12 @@ @ cdecl -arch=win64 ?construct@?$allocator@G@std@@QEAAXPEAGAEBG@Z(ptr ptr ptr) MSVCP_allocator_short_construct @ thiscall -arch=win32 ?construct@?$allocator@_W@std@@QAEXPA_WAB_W@Z(ptr ptr ptr) MSVCP_allocator_wchar_construct @ cdecl -arch=win64 ?construct@?$allocator@_W@std@@QEAAXPEA_WAEB_W@Z(ptr ptr ptr) MSVCP_allocator_wchar_construct -@ stub -arch=win32 ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPADII@Z -@ stub -arch=win64 ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K1@Z +@ thiscall -arch=win32 ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPADII@Z(ptr ptr long long) basic_string_char_copy +@ cdecl -arch=win64 ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K1@Z(ptr ptr long long) basic_string_char_copy @ stub -arch=win32 ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGII@Z @ stub -arch=win64 ?copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA_KPEAG_K1@Z -@ stub -arch=win32 ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WII@Z -@ stub -arch=win64 ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K1@Z +@ thiscall -arch=win32 ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WII@Z(ptr ptr long long) basic_string_wchar_copy +@ cdecl -arch=win64 ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K1@Z(ptr ptr long long) basic_string_wchar_copy @ cdecl -arch=win32 ?copy@?$char_traits@D@std@@SAPADPADPBDI@Z(ptr ptr long) MSVCP_char_traits_char_copy @ cdecl -arch=win64 ?copy@?$char_traits@D@std@@SAPEADPEADPEBD_K@Z(ptr ptr long) MSVCP_char_traits_char_copy @ cdecl -arch=win32 ?copy@?$char_traits@G@std@@SAPAGPAGPBGI@Z(ptr ptr long) MSVCP_char_traits_short_copy diff --git a/dlls/msvcp90/string.c b/dlls/msvcp90/string.c index ed68929..cc22795 100644 --- a/dlls/msvcp90/string.c +++ b/dlls/msvcp90/string.c @@ -853,9 +853,9 @@ void __thiscall MSVCP_basic_string_char_Chassign(basic_string_char *this, /* ?_Copy_s@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K11@Z */ DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_Copy_s, 20) MSVCP_size_t __thiscall MSVCP_basic_string_char_Copy_s(const basic_string_char *this, - char *dest, MSVCP_size_t size, MSVCP_size_t off, MSVCP_size_t count) + char *dest, MSVCP_size_t size, MSVCP_size_t count, MSVCP_size_t off) { - TRACE("%p %p %lu %lu %lu\n", this, dest, size, off, count); + TRACE("%p %p %lu %lu %lu\n", this, dest, size, count, off);
if(this->size < off) MSVCP__String_base_Xran(); @@ -868,6 +868,15 @@ MSVCP_size_t __thiscall MSVCP_basic_string_char_Copy_s(const basic_string_char * return count; }
+/* ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPADII@Z */ +/* ?copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K1@Z */ +DEFINE_THISCALL_WRAPPER(basic_string_char_copy, 16) +MSVCP_size_t __thiscall basic_string_char_copy(const basic_string_char *this, + char *dest, MSVCP_size_t count, MSVCP_size_t off) +{ + return MSVCP_basic_string_char_Copy_s(this, dest, count, count, off); +} + /* ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ */ /* ?c_str@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBAPEBDXZ */ /* ?data@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEPBDXZ */ @@ -2530,9 +2539,9 @@ void __thiscall MSVCP_basic_string_wchar_Chassign(basic_string_wchar *this, /* ?_Copy_s@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K11@Z */ DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_Copy_s, 20) MSVCP_size_t __thiscall MSVCP_basic_string_wchar_Copy_s(const basic_string_wchar *this, - wchar_t *dest, MSVCP_size_t size, MSVCP_size_t off, MSVCP_size_t count) + wchar_t *dest, MSVCP_size_t size, MSVCP_size_t count, MSVCP_size_t off) { - TRACE("%p %p %lu %lu %lu\n", this, dest, size, off, count); + TRACE("%p %p %lu %lu %lu\n", this, dest, size, count, off);
if(this->size < off) MSVCP__String_base_Xran(); @@ -2545,6 +2554,15 @@ MSVCP_size_t __thiscall MSVCP_basic_string_wchar_Copy_s(const basic_string_wchar return count; }
+/* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEIPA_WII@Z */ +/* ?copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA_KPEA_W_K1@Z */ +DEFINE_THISCALL_WRAPPER(basic_string_wchar_copy, 16) +MSVCP_size_t __thiscall basic_string_wchar_copy(const basic_string_wchar *this, + wchar_t *dest, MSVCP_size_t count, MSVCP_size_t off) +{ + return MSVCP_basic_string_wchar_Copy_s(this, dest, count, count, off); +} + /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */ /* ?c_str@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBAPEB_WXZ */ /* ?data@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QBEPB_WXZ */