From 0d6bd9878392221991b31791cc14d52029663c82 Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Wed, 16 Nov 2011 16:24:49 +0100 Subject: [PATCH] msvcp90: Added basic_string::_Copy implementation. --- dlls/msvcp90/msvcp90.spec | 8 ++++---- dlls/msvcp90/string.c | 26 ++++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 4 deletions(-) diff --git a/dlls/msvcp90/msvcp90.spec b/dlls/msvcp90/msvcp90.spec index d137cd5cabf..ce6fea76705 100644 --- a/dlls/msvcp90/msvcp90.spec +++ b/dlls/msvcp90/msvcp90.spec @@ -2133,12 +2133,12 @@ @ stub -arch=win64 ?_Clog_func@std@@YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@1@XZ @ stub -arch=win64 ?_Cm@?5???$log@M@std@@YA?AV?$complex@M@1@AEBV21@@Z@4MB @ stub -arch=win64 ?_Cm@?5???$log@N@std@@YA?AV?$complex@N@1@AEBV21@@Z@4NB -@ stub -arch=win32 ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z -@ stub -arch=win64 ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K0@Z +@ thiscall -arch=win32 ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z(ptr long long) basic_string_char__Copy +@ cdecl -arch=win64 ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K0@Z(ptr long long) basic_string_char__Copy @ stub -arch=win32 ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IAEXII@Z @ stub -arch=win64 ?_Copy@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@IEAAX_K0@Z -@ stub -arch=win32 ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII@Z -@ stub -arch=win64 ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0@Z +@ thiscall -arch=win32 ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII@Z(ptr long long) basic_string_wchar__Copy +@ cdecl -arch=win64 ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0@Z(ptr long long) basic_string_wchar__Copy @ thiscall -arch=win32 ?_Copy_s@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEIPADIII@Z(ptr ptr long long long) MSVCP_basic_string_char_Copy_s @ cdecl -arch=win64 ?_Copy_s@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA_KPEAD_K11@Z(ptr ptr long long long) MSVCP_basic_string_char_Copy_s @ stub -arch=win32 ?_Copy_s@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBEIPAGIII@Z diff --git a/dlls/msvcp90/string.c b/dlls/msvcp90/string.c index 6460f0291b2..ed68929bf77 100644 --- a/dlls/msvcp90/string.c +++ b/dlls/msvcp90/string.c @@ -634,6 +634,19 @@ MSVCP_bool __thiscall basic_string_char_grow( return (new_size>0); } +/* ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IAEXII@Z */ +/* ?_Copy@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@IEAAX_K0@Z */ +DEFINE_THISCALL_WRAPPER(basic_string_char__Copy, 12) +void __thiscall basic_string_char__Copy(basic_string_char *this, + MSVCP_size_t new_size, MSVCP_size_t copy_len) +{ + TRACE("%p %lu %lu\n", this, new_size, copy_len); + + if(!basic_string_char_grow(this, new_size, FALSE)) + return; + basic_string_char_eos(this, copy_len); +} + /* ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@KAIV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z */ /* ?_Pdif@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@KA_KV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z */ MSVCP_size_t __cdecl MSVCP_basic_string_char_Pdif(String_iterator_char i1, String_iterator_char i2) @@ -2298,6 +2311,19 @@ MSVCP_bool __thiscall basic_string_wchar_grow( return (new_size>0); } +/* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IAEXII@Z */ +/* ?_Copy@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@IEAAX_K0@Z */ +DEFINE_THISCALL_WRAPPER(basic_string_wchar__Copy, 12) +void __thiscall basic_string_wchar__Copy(basic_string_wchar *this, + MSVCP_size_t new_size, MSVCP_size_t copy_len) +{ + TRACE("%p %lu %lu\n", this, new_size, copy_len); + + if(!basic_string_wchar_grow(this, new_size, FALSE)) + return; + basic_string_wchar_eos(this, copy_len); +} + /* ?_Pdif@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@KAIV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0@Z */ /* ?_Pdif@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@KA_KV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0@Z */ MSVCP_size_t __cdecl MSVCP_basic_string_wchar_Pdif(String_iterator_wchar i1, String_iterator_wchar i2)