Module: wine Branch: master Commit: 8c865c8cca5f9b387216146e1fe707d4176bdf04 URL: http://source.winehq.org/git/wine.git/?a=commit;h=8c865c8cca5f9b387216146e1f...
Author: Piotr Caban piotr@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@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z @ stub -arch=win32 ?swap@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXAAV12@@Z @ stub -arch=win64 ?swap@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z -@ stub -arch=win32 ?swap@ios_base@std@@QAEXAAV12@@Z -@ stub -arch=win64 ?swap@ios_base@std@@QEAAXAEAV12@@Z +@ thiscall -arch=win32 ?swap@ios_base@std@@QAEXAAV12@@Z(ptr ptr) ios_base_swap +@ cdecl -arch=win64 ?swap@ios_base@std@@QEAAXAEAV12@@Z(ptr ptr) ios_base_swap @ thiscall -arch=win32 ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ(ptr) basic_istream_char_sync @ cdecl -arch=win64 ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAHXZ(ptr) basic_istream_char_sync @ thiscall -arch=win32 ?sync@?$basic_istream@GU?$char_traits@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@_WU?$char_traits@_W@std@@@std@@IAAXAAV12@@Z @ stub -arch=i386 ?swap@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IAEXAAV12@@Z @ stub -arch=win64 ?swap@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z -@ stub -arch=arm ?swap@ios_base@std@@QAAXAAV12@@Z -@ stub -arch=i386 ?swap@ios_base@std@@QAEXAAV12@@Z -@ stub -arch=win64 ?swap@ios_base@std@@QEAAXAEAV12@@Z +@ cdecl -arch=arm ?swap@ios_base@std@@QAAXAAV12@@Z(ptr ptr) ios_base_swap +@ thiscall -arch=i386 ?swap@ios_base@std@@QAEXAAV12@@Z(ptr ptr) ios_base_swap +@ cdecl -arch=win64 ?swap@ios_base@std@@QEAAXAEAV12@@Z(ptr ptr) ios_base_swap @ cdecl -arch=arm ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QAAHXZ(ptr) basic_istream_char_sync @ thiscall -arch=i386 ?sync@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEHXZ(ptr) basic_istream_char_sync @ cdecl -arch=win64 ?sync@?$basic_istream@DU?$char_traits@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@ios_base@std@@QAEXAAV12@@Z */ +/* ?swap@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@DU?$char_traits@D@std@@@std@@IAE@XZ */ /* ??0?$basic_ios@DU?$char_traits@D@std@@@std@@IEAA@XZ */ DEFINE_THISCALL_WRAPPER(basic_ios_char_ctor, 4)