Piotr Caban : msvcp100: Add basic_iostream::swap implementation.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Jul 30 17:21:36 CDT 2014
Module: wine
Branch: master
Commit: cbdc014f41673d85f8379d0fa8ca1fb770a4e42a
URL: http://source.winehq.org/git/wine.git/?a=commit;h=cbdc014f41673d85f8379d0fa8ca1fb770a4e42a
Author: Piotr Caban <piotr at codeweavers.com>
Date: Wed Jul 30 15:55:38 2014 -0500
msvcp100: Add basic_iostream::swap implementation.
---
dlls/msvcp100/msvcp100.spec | 12 ++++++------
dlls/msvcp110/msvcp110.spec | 18 +++++++++---------
dlls/msvcp90/ios.c | 30 ++++++++++++++++++++++++++++++
3 files changed, 45 insertions(+), 15 deletions(-)
diff --git a/dlls/msvcp100/msvcp100.spec b/dlls/msvcp100/msvcp100.spec
index 20a8ee6..538f37f 100644
--- a/dlls/msvcp100/msvcp100.spec
+++ b/dlls/msvcp100/msvcp100.spec
@@ -2692,12 +2692,12 @@
@ cdecl -arch=win64 ?swap@?$basic_ios at GU?$char_traits at G@std@@@std@@QEAAXAEAV12@@Z(ptr ptr) basic_ios_wchar_swap
@ thiscall -arch=win32 ?swap@?$basic_ios at _WU?$char_traits at _W@std@@@std@@QAEXAAV12@@Z(ptr ptr) basic_ios_wchar_swap
@ cdecl -arch=win64 ?swap@?$basic_ios at _WU?$char_traits at _W@std@@@std@@QEAAXAEAV12@@Z(ptr ptr) basic_ios_wchar_swap
-@ stub -arch=win32 ?swap@?$basic_iostream at DU?$char_traits at D@std@@@std@@QAEXAAV12@@Z
-@ stub -arch=win64 ?swap@?$basic_iostream at DU?$char_traits at D@std@@@std@@QEAAXAEAV12@@Z
-@ stub -arch=win32 ?swap@?$basic_iostream at GU?$char_traits at G@std@@@std@@QAEXAAV12@@Z
-@ stub -arch=win64 ?swap@?$basic_iostream at GU?$char_traits at G@std@@@std@@QEAAXAEAV12@@Z
-@ stub -arch=win32 ?swap@?$basic_iostream at _WU?$char_traits at _W@std@@@std@@QAEXAAV12@@Z
-@ stub -arch=win64 ?swap@?$basic_iostream at _WU?$char_traits at _W@std@@@std@@QEAAXAEAV12@@Z
+@ thiscall -arch=win32 ?swap@?$basic_iostream at DU?$char_traits at D@std@@@std@@QAEXAAV12@@Z(ptr ptr) basic_iostream_char_swap
+@ cdecl -arch=win64 ?swap@?$basic_iostream at DU?$char_traits at D@std@@@std@@QEAAXAEAV12@@Z(ptr ptr) basic_iostream_char_swap
+@ thiscall -arch=win32 ?swap@?$basic_iostream at GU?$char_traits at G@std@@@std@@QAEXAAV12@@Z(ptr ptr) basic_iostream_wchar_swap
+@ cdecl -arch=win64 ?swap@?$basic_iostream at GU?$char_traits at G@std@@@std@@QEAAXAEAV12@@Z(ptr ptr) basic_iostream_wchar_swap
+@ thiscall -arch=win32 ?swap@?$basic_iostream at _WU?$char_traits at _W@std@@@std@@QAEXAAV12@@Z(ptr ptr) basic_iostream_wchar_swap
+@ cdecl -arch=win64 ?swap@?$basic_iostream at _WU?$char_traits at _W@std@@@std@@QEAAXAEAV12@@Z(ptr ptr) basic_iostream_wchar_swap
@ thiscall -arch=win32 ?swap@?$basic_istream at DU?$char_traits at D@std@@@std@@QAEXAAV12@@Z(ptr ptr) basic_istream_char_swap
@ cdecl -arch=win64 ?swap@?$basic_istream at DU?$char_traits at D@std@@@std@@QEAAXAEAV12@@Z(ptr ptr) basic_istream_char_swap
@ thiscall -arch=win32 ?swap@?$basic_istream at GU?$char_traits at G@std@@@std@@QAEXAAV12@@Z(ptr ptr) basic_istream_wchar_swap
diff --git a/dlls/msvcp110/msvcp110.spec b/dlls/msvcp110/msvcp110.spec
index 15ec125..8e01521 100644
--- a/dlls/msvcp110/msvcp110.spec
+++ b/dlls/msvcp110/msvcp110.spec
@@ -3470,15 +3470,15 @@
@ cdecl -arch=arm ?swap@?$basic_ios at _WU?$char_traits at _W@std@@@std@@QAAXAAV12@@Z(ptr ptr) basic_ios_wchar_swap
@ thiscall -arch=i386 ?swap@?$basic_ios at _WU?$char_traits at _W@std@@@std@@QAEXAAV12@@Z(ptr ptr) basic_ios_wchar_swap
@ cdecl -arch=win64 ?swap@?$basic_ios at _WU?$char_traits at _W@std@@@std@@QEAAXAEAV12@@Z(ptr ptr) basic_ios_wchar_swap
-@ stub -arch=arm ?swap@?$basic_iostream at DU?$char_traits at D@std@@@std@@IAAXAAV12@@Z
-@ stub -arch=i386 ?swap@?$basic_iostream at DU?$char_traits at D@std@@@std@@IAEXAAV12@@Z
-@ stub -arch=win64 ?swap@?$basic_iostream at DU?$char_traits at D@std@@@std@@IEAAXAEAV12@@Z
-@ stub -arch=arm ?swap@?$basic_iostream at GU?$char_traits at G@std@@@std@@IAAXAAV12@@Z
-@ stub -arch=i386 ?swap@?$basic_iostream at GU?$char_traits at G@std@@@std@@IAEXAAV12@@Z
-@ stub -arch=win64 ?swap@?$basic_iostream at GU?$char_traits at G@std@@@std@@IEAAXAEAV12@@Z
-@ stub -arch=arm ?swap@?$basic_iostream at _WU?$char_traits at _W@std@@@std@@IAAXAAV12@@Z
-@ stub -arch=i386 ?swap@?$basic_iostream at _WU?$char_traits at _W@std@@@std@@IAEXAAV12@@Z
-@ stub -arch=win64 ?swap@?$basic_iostream at _WU?$char_traits at _W@std@@@std@@IEAAXAEAV12@@Z
+@ cdecl -arch=arm ?swap@?$basic_iostream at DU?$char_traits at D@std@@@std@@IAAXAAV12@@Z(ptr ptr) basic_iostream_char_swap
+@ thiscall -arch=i386 ?swap@?$basic_iostream at DU?$char_traits at D@std@@@std@@IAEXAAV12@@Z(ptr ptr) basic_iostream_char_swap
+@ cdecl -arch=win64 ?swap@?$basic_iostream at DU?$char_traits at D@std@@@std@@IEAAXAEAV12@@Z(ptr ptr) basic_iostream_char_swap
+@ cdecl -arch=arm ?swap@?$basic_iostream at GU?$char_traits at G@std@@@std@@IAAXAAV12@@Z(ptr ptr) basic_iostream_wchar_swap
+@ thiscall -arch=i386 ?swap@?$basic_iostream at GU?$char_traits at G@std@@@std@@IAEXAAV12@@Z(ptr ptr) basic_iostream_wchar_swap
+@ cdecl -arch=win64 ?swap@?$basic_iostream at GU?$char_traits at G@std@@@std@@IEAAXAEAV12@@Z(ptr ptr) basic_iostream_wchar_swap
+@ cdecl -arch=arm ?swap@?$basic_iostream at _WU?$char_traits at _W@std@@@std@@IAAXAAV12@@Z(ptr ptr) basic_iostream_wchar_swap
+@ thiscall -arch=i386 ?swap@?$basic_iostream at _WU?$char_traits at _W@std@@@std@@IAEXAAV12@@Z(ptr ptr) basic_iostream_wchar_swap
+@ cdecl -arch=win64 ?swap@?$basic_iostream at _WU?$char_traits at _W@std@@@std@@IEAAXAEAV12@@Z(ptr ptr) basic_iostream_wchar_swap
@ cdecl -arch=arm ?swap@?$basic_istream at DU?$char_traits at D@std@@@std@@IAAXAAV12@@Z(ptr ptr) basic_istream_char_swap
@ thiscall -arch=i386 ?swap@?$basic_istream at DU?$char_traits at D@std@@@std@@IAEXAAV12@@Z(ptr ptr) basic_istream_char_swap
@ cdecl -arch=win64 ?swap@?$basic_istream at DU?$char_traits at D@std@@@std@@IEAAXAEAV12@@Z(ptr ptr) basic_istream_char_swap
diff --git a/dlls/msvcp90/ios.c b/dlls/msvcp90/ios.c
index 7ddc9da..f730898 100644
--- a/dlls/msvcp90/ios.c
+++ b/dlls/msvcp90/ios.c
@@ -10570,6 +10570,20 @@ basic_iostream_char* __thiscall basic_iostream_char_vector_dtor(basic_ios_char *
return this;
}
+/* ?swap@?$basic_iostream at DU?$char_traits at D@std@@@std@@QAEXAAV12@@Z */
+/* ?swap@?$basic_iostream at DU?$char_traits at D@std@@@std@@QEAAXAEAV12@@Z */
+DEFINE_THISCALL_WRAPPER(basic_iostream_char_swap, 8)
+void __thiscall basic_iostream_char_swap(basic_iostream_char *this, basic_iostream_char *r)
+{
+ TRACE("(%p %p)\n", this, r);
+
+ if(this == r)
+ return;
+
+ basic_ios_char_swap(basic_istream_char_get_basic_ios(&this->base1),
+ basic_istream_char_get_basic_ios(&r->base1));
+}
+
static inline basic_ios_wchar* basic_iostream_wchar_to_basic_ios(basic_iostream_wchar *ptr)
{
return (basic_ios_wchar*)((char*)ptr+basic_iostream_wchar_vbtable1[1]);
@@ -10666,6 +10680,22 @@ basic_iostream_wchar* __thiscall basic_iostream_wchar_vector_dtor(basic_ios_wcha
return this;
}
+/* ?swap@?$basic_iostream at GU?$char_traits at G@std@@@std@@QAEXAAV12@@Z */
+/* ?swap@?$basic_iostream at GU?$char_traits at G@std@@@std@@QEAAXAEAV12@@Z */
+/* ?swap@?$basic_iostream at _WU?$char_traits at _W@std@@@std@@QAEXAAV12@@Z */
+/* ?swap@?$basic_iostream at _WU?$char_traits at _W@std@@@std@@QEAAXAEAV12@@Z */
+DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_swap, 8)
+void __thiscall basic_iostream_wchar_swap(basic_iostream_wchar *this, basic_iostream_wchar *r)
+{
+ TRACE("(%p %p)\n", this, r);
+
+ if(this == r)
+ return;
+
+ basic_ios_wchar_swap(basic_istream_wchar_get_basic_ios(&this->base1),
+ basic_istream_wchar_get_basic_ios(&r->base1));
+}
+
static inline basic_ios_char* basic_ofstream_char_to_basic_ios(basic_ofstream_char *ptr)
{
return (basic_ios_char*)((char*)ptr+basic_ofstream_char_vbtable[1]);
More information about the wine-cvs
mailing list