msvcp100: Add basic_istream::swap implementation.

This commit is contained in:
Piotr Caban 2014-07-30 15:55:11 -05:00 committed by Alexandre Julliard
parent bcee8a0ec3
commit fe93ebd830
3 changed files with 51 additions and 15 deletions

View File

@ -2698,12 +2698,12 @@
@ stub -arch=win64 ?swap@?$basic_iostream@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z
@ stub -arch=win32 ?swap@?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAEXAAV12@@Z
@ stub -arch=win64 ?swap@?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z
@ stub -arch=win32 ?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXAAV12@@Z
@ stub -arch=win64 ?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z
@ stub -arch=win32 ?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXAAV12@@Z
@ stub -arch=win64 ?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z
@ stub -arch=win32 ?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXAAV12@@Z
@ stub -arch=win64 ?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z
@ thiscall -arch=win32 ?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXAAV12@@Z(ptr ptr) basic_istream_char_swap
@ cdecl -arch=win64 ?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z(ptr ptr) basic_istream_char_swap
@ thiscall -arch=win32 ?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXAAV12@@Z(ptr ptr) basic_istream_wchar_swap
@ cdecl -arch=win64 ?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z(ptr ptr) basic_istream_wchar_swap
@ thiscall -arch=win32 ?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXAAV12@@Z(ptr ptr) basic_istream_wchar_swap
@ cdecl -arch=win64 ?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z(ptr ptr) basic_istream_wchar_swap
@ stub -arch=win32 ?swap@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAEXAAV12@@Z
@ stub -arch=win64 ?swap@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z
@ stub -arch=win32 ?swap@?$basic_ostream@GU?$char_traits@G@std@@@std@@QAEXAAV12@@Z

View File

@ -3479,15 +3479,15 @@
@ stub -arch=arm ?swap@?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IAAXAAV12@@Z
@ stub -arch=i386 ?swap@?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IAEXAAV12@@Z
@ stub -arch=win64 ?swap@?$basic_iostream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z
@ stub -arch=arm ?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@IAAXAAV12@@Z
@ stub -arch=i386 ?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@IAEXAAV12@@Z
@ stub -arch=win64 ?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z
@ stub -arch=arm ?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@IAAXAAV12@@Z
@ stub -arch=i386 ?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@IAEXAAV12@@Z
@ stub -arch=win64 ?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z
@ stub -arch=arm ?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@IAAXAAV12@@Z
@ stub -arch=i386 ?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@IAEXAAV12@@Z
@ stub -arch=win64 ?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z
@ cdecl -arch=arm ?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@IAAXAAV12@@Z(ptr ptr) basic_istream_char_swap
@ thiscall -arch=i386 ?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@IAEXAAV12@@Z(ptr ptr) basic_istream_char_swap
@ cdecl -arch=win64 ?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z(ptr ptr) basic_istream_char_swap
@ cdecl -arch=arm ?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@IAAXAAV12@@Z(ptr ptr) basic_istream_wchar_swap
@ thiscall -arch=i386 ?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@IAEXAAV12@@Z(ptr ptr) basic_istream_wchar_swap
@ cdecl -arch=win64 ?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@IEAAXAEAV12@@Z(ptr ptr) basic_istream_wchar_swap
@ cdecl -arch=arm ?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@IAAXAAV12@@Z(ptr ptr) basic_istream_wchar_swap
@ thiscall -arch=i386 ?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@IAEXAAV12@@Z(ptr ptr) basic_istream_wchar_swap
@ cdecl -arch=win64 ?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@IEAAXAEAV12@@Z(ptr ptr) basic_istream_wchar_swap
@ stub -arch=arm ?swap@?$basic_ostream@DU?$char_traits@D@std@@@std@@IAAXAAV12@@Z
@ stub -arch=i386 ?swap@?$basic_ostream@DU?$char_traits@D@std@@@std@@IAEXAAV12@@Z
@ stub -arch=win64 ?swap@?$basic_ostream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z

View File

@ -8896,6 +8896,23 @@ basic_istream_char* __thiscall basic_istream_char_read_func_ios_base(basic_istre
return this;
}
/* ?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEXAAV12@@Z */
/* ?swap@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z */
DEFINE_THISCALL_WRAPPER(basic_istream_char_swap, 8)
void __thiscall basic_istream_char_swap(basic_istream_char *this, basic_istream_char *r)
{
TRACE("(%p %p)\n", this, r);
if(this == r)
return;
basic_ios_char_swap(basic_istream_char_get_basic_ios(this),
basic_istream_char_get_basic_ios(r));
this->count ^= r->count;
r->count ^= this->count;
this->count ^= r->count;
}
/* Caution: basic_istream uses virtual inheritance. */
static inline basic_ios_wchar* basic_istream_wchar_get_basic_ios(basic_istream_wchar *this)
{
@ -10424,6 +10441,25 @@ basic_istream_wchar* __thiscall basic_istream_wchar_read_func_ios_base(
return this;
}
/* ?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@QAEXAAV12@@Z */
/* ?swap@?$basic_istream@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z */
/* ?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAEXAAV12@@Z */
/* ?swap@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z */
DEFINE_THISCALL_WRAPPER(basic_istream_wchar_swap, 8)
void __thiscall basic_istream_wchar_swap(basic_istream_wchar *this, basic_istream_wchar *r)
{
TRACE("(%p %p)\n", this, r);
if(this == r)
return;
basic_ios_wchar_swap(basic_istream_wchar_get_basic_ios(this),
basic_istream_wchar_get_basic_ios(r));
this->count ^= r->count;
r->count ^= this->count;
this->count ^= r->count;
}
static inline basic_ios_char* basic_iostream_char_to_basic_ios(basic_iostream_char *ptr)
{
return (basic_ios_char*)((char*)ptr+basic_iostream_char_vbtable1[1]);