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: b9f544a2ab21956b1313d3919d04871191a9a365
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=b9f544a2ab21956b1313d3919d04871191a9a365

Author: Piotr Caban <piotr at 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 at G@std@@QEAAXPEAGAEBG at Z(ptr ptr ptr) MSVCP_allocator_short_construct
 @ thiscall -arch=win32 ?construct@?$allocator at _W@std@@QAEXPA_WAB_W at Z(ptr ptr ptr) MSVCP_allocator_wchar_construct
 @ cdecl -arch=win64 ?construct@?$allocator at _W@std@@QEAAXPEA_WAEB_W at Z(ptr ptr ptr) MSVCP_allocator_wchar_construct
-@ stub -arch=win32 ?copy@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QBEIPADII at Z
-@ stub -arch=win64 ?copy@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEBA_KPEAD_K1 at Z
+@ thiscall -arch=win32 ?copy@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QBEIPADII at Z(ptr 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@@QEBA_KPEAD_K1 at Z(ptr 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@@QBEIPAGII at Z
 @ stub -arch=win64 ?copy@?$basic_string at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@QEBA_KPEAG_K1 at Z
-@ stub -arch=win32 ?copy@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QBEIPA_WII at Z
-@ stub -arch=win64 ?copy@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEBA_KPEA_W_K1 at Z
+@ thiscall -arch=win32 ?copy@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QBEIPA_WII at Z(ptr 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@@QEBA_KPEA_W_K1 at Z(ptr ptr long long) basic_string_wchar_copy
 @ cdecl -arch=win32 ?copy@?$char_traits at D@std@@SAPADPADPBDI at Z(ptr ptr long) MSVCP_char_traits_char_copy
 @ cdecl -arch=win64 ?copy@?$char_traits at D@std@@SAPEADPEADPEBD_K at Z(ptr ptr long) MSVCP_char_traits_char_copy
 @ cdecl -arch=win32 ?copy@?$char_traits at G@std@@SAPAGPAGPBGI at 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 at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEBA_KPEAD_K11 at 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 at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QBEIPADII at Z */
+/* ?copy@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEBA_KPEAD_K1 at 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 at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QBEPBDXZ */
 /* ?c_str@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEBAPEBDXZ */
 /* ?data@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QBEPBDXZ */
@@ -2530,9 +2539,9 @@ void __thiscall MSVCP_basic_string_wchar_Chassign(basic_string_wchar *this,
 /* ?_Copy_s@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEBA_KPEA_W_K11 at 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 at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QBEIPA_WII at Z */
+/* ?copy@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEBA_KPEA_W_K1 at 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 at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QBEPB_WXZ */
 /* ?c_str@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEBAPEB_WXZ */
 /* ?data@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QBEPB_WXZ */




More information about the wine-cvs mailing list