Piotr Caban : msvcp100: Add ios_base::swap implementation.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Jul 30 17:21:36 CDT 2014


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Wed Jul 30 15:54:17 2014 -0500

msvcp100: Add ios_base::swap implementation.

---

 dlls/msvcp100/msvcp100.spec |  4 ++--
 dlls/msvcp110/msvcp110.spec |  6 +++---
 dlls/msvcp90/ios.c          | 19 +++++++++++++++++++
 3 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/dlls/msvcp100/msvcp100.spec b/dlls/msvcp100/msvcp100.spec
index ab0b1d0..3d0db763 100644
--- a/dlls/msvcp100/msvcp100.spec
+++ b/dlls/msvcp100/msvcp100.spec
@@ -2716,8 +2716,8 @@
 @ stub -arch=win64 ?swap@?$basic_streambuf at GU?$char_traits at G@std@@@std@@IEAAXAEAV12@@Z
 @ stub -arch=win32 ?swap@?$basic_streambuf at _WU?$char_traits at _W@std@@@std@@IAEXAAV12@@Z
 @ stub -arch=win64 ?swap@?$basic_streambuf at _WU?$char_traits at _W@std@@@std@@IEAAXAEAV12@@Z
-@ stub -arch=win32 ?swap at ios_base@std@@QAEXAAV12@@Z
-@ stub -arch=win64 ?swap at ios_base@std@@QEAAXAEAV12@@Z
+@ thiscall -arch=win32 ?swap at ios_base@std@@QAEXAAV12@@Z(ptr ptr) ios_base_swap
+@ cdecl -arch=win64 ?swap at ios_base@std@@QEAAXAEAV12@@Z(ptr ptr) ios_base_swap
 @ thiscall -arch=win32 ?sync@?$basic_istream at DU?$char_traits at D@std@@@std@@QAEHXZ(ptr) basic_istream_char_sync
 @ cdecl -arch=win64 ?sync@?$basic_istream at DU?$char_traits at D@std@@@std@@QEAAHXZ(ptr) basic_istream_char_sync
 @ thiscall -arch=win32 ?sync@?$basic_istream at GU?$char_traits at G@std@@@std@@QAEHXZ(ptr) basic_istream_wchar_sync
diff --git a/dlls/msvcp110/msvcp110.spec b/dlls/msvcp110/msvcp110.spec
index 5fc5348..ecf2db3 100644
--- a/dlls/msvcp110/msvcp110.spec
+++ b/dlls/msvcp110/msvcp110.spec
@@ -3506,9 +3506,9 @@
 @ stub -arch=arm ?swap@?$basic_streambuf at _WU?$char_traits at _W@std@@@std@@IAAXAAV12@@Z
 @ stub -arch=i386 ?swap@?$basic_streambuf at _WU?$char_traits at _W@std@@@std@@IAEXAAV12@@Z
 @ stub -arch=win64 ?swap@?$basic_streambuf at _WU?$char_traits at _W@std@@@std@@IEAAXAEAV12@@Z
-@ stub -arch=arm ?swap at ios_base@std@@QAAXAAV12@@Z
-@ stub -arch=i386 ?swap at ios_base@std@@QAEXAAV12@@Z
-@ stub -arch=win64 ?swap at ios_base@std@@QEAAXAEAV12@@Z
+@ cdecl -arch=arm ?swap at ios_base@std@@QAAXAAV12@@Z(ptr ptr) ios_base_swap
+@ thiscall -arch=i386 ?swap at ios_base@std@@QAEXAAV12@@Z(ptr ptr) ios_base_swap
+@ cdecl -arch=win64 ?swap at ios_base@std@@QEAAXAEAV12@@Z(ptr ptr) ios_base_swap
 @ cdecl -arch=arm ?sync@?$basic_istream at DU?$char_traits at D@std@@@std@@QAAHXZ(ptr) basic_istream_char_sync
 @ thiscall -arch=i386 ?sync@?$basic_istream at DU?$char_traits at D@std@@@std@@QAEHXZ(ptr) basic_istream_char_sync
 @ cdecl -arch=win64 ?sync@?$basic_istream at DU?$char_traits at D@std@@@std@@QEAAHXZ(ptr) basic_istream_char_sync
diff --git a/dlls/msvcp90/ios.c b/dlls/msvcp90/ios.c
index f7cb232..14b3b25 100644
--- a/dlls/msvcp90/ios.c
+++ b/dlls/msvcp90/ios.c
@@ -5264,6 +5264,25 @@ int CDECL ios_base_xalloc(void)
     return ret;
 }
 
+/* ?swap at ios_base@std@@QAEXAAV12@@Z */
+/* ?swap at ios_base@std@@QEAAXAEAV12@@Z */
+DEFINE_THISCALL_WRAPPER(ios_base_swap, 8)
+void __thiscall ios_base_swap(ios_base *this, ios_base *r)
+{
+    ios_base tmp;
+
+    TRACE("(%p %p)\n", this, r);
+
+    if(this == r)
+        return;
+
+    tmp = *this;
+    *this = *r;
+    this->vtable = tmp.vtable;
+    tmp.vtable = r->vtable;
+    *r = tmp;
+}
+
 /* ??0?$basic_ios at DU?$char_traits at D@std@@@std@@IAE at XZ */
 /* ??0?$basic_ios at DU?$char_traits at D@std@@@std@@IEAA at XZ */
 DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor, 4)




More information about the wine-cvs mailing list