Piotr Caban : msvcp90: Added basic_string::_Copy implementation.

Alexandre Julliard julliard at winehq.org
Wed Nov 16 12:46:47 CST 2011


Module: wine
Branch: master
Commit: 0d6bd9878392221991b31791cc14d52029663c82
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0d6bd9878392221991b31791cc14d52029663c82

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Wed Nov 16 16:24:49 2011 +0100

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 d137cd5..ce6fea7 100644
--- a/dlls/msvcp90/msvcp90.spec
+++ b/dlls/msvcp90/msvcp90.spec
@@ -2133,12 +2133,12 @@
 @ stub -arch=win64 ?_Clog_func at std@@YAAEAV?$basic_ostream at DU?$char_traits at D@std@@@1 at XZ
 @ stub -arch=win64 ?_Cm@?5???$log at M@std@@YA?AV?$complex at M@1 at AEBV21@@Z at 4MB
 @ stub -arch=win64 ?_Cm@?5???$log at N@std@@YA?AV?$complex at N@1 at AEBV21@@Z at 4NB
-@ stub -arch=win32 ?_Copy@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@IAEXII at Z
-@ stub -arch=win64 ?_Copy@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@IEAAX_K0 at Z
+@ thiscall -arch=win32 ?_Copy@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@IAEXII at Z(ptr long long) basic_string_char__Copy
+@ cdecl -arch=win64 ?_Copy@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@IEAAX_K0 at Z(ptr long long) basic_string_char__Copy
 @ stub -arch=win32 ?_Copy@?$basic_string at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@IAEXII at Z
 @ stub -arch=win64 ?_Copy@?$basic_string at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@IEAAX_K0 at Z
-@ stub -arch=win32 ?_Copy@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@IAEXII at Z
-@ stub -arch=win64 ?_Copy@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@IEAAX_K0 at Z
+@ thiscall -arch=win32 ?_Copy@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@IAEXII at Z(ptr long long) basic_string_wchar__Copy
+@ cdecl -arch=win64 ?_Copy@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@IEAAX_K0 at Z(ptr long long) basic_string_wchar__Copy
 @ thiscall -arch=win32 ?_Copy_s@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QBEIPADIII at Z(ptr ptr long long long) MSVCP_basic_string_char_Copy_s
 @ cdecl -arch=win64 ?_Copy_s@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEBA_KPEAD_K11 at Z(ptr ptr long long long) MSVCP_basic_string_char_Copy_s
 @ stub -arch=win32 ?_Copy_s@?$basic_string at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@QBEIPAGIII at Z
diff --git a/dlls/msvcp90/string.c b/dlls/msvcp90/string.c
index 6460f02..ed68929 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 at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@IAEXII at Z */
+/* ?_Copy@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@IEAAX_K0 at 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 at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@KAIV?$_String_const_iterator at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at 0@Z */
 /* ?_Pdif@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@KA_KV?$_String_const_iterator at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at 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 at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@IAEXII at Z */
+/* ?_Copy@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@IEAAX_K0 at 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 at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@KAIV?$_String_const_iterator at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@2 at 0@Z */
 /* ?_Pdif@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@KA_KV?$_String_const_iterator at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@2 at 0@Z */
 MSVCP_size_t __cdecl MSVCP_basic_string_wchar_Pdif(String_iterator_wchar i1, String_iterator_wchar i2)




More information about the wine-cvs mailing list