msvcp100: Add basic_ios::swap implementation.

This commit is contained in:
Piotr Caban 2014-07-30 15:54:44 -05:00 committed by Alexandre Julliard
parent 8c865c8cca
commit bcee8a0ec3
3 changed files with 58 additions and 15 deletions

View File

@ -2686,12 +2686,12 @@
@ cdecl -arch=win64 ?sungetc@?$basic_streambuf@GU?$char_traits@G@std@@@std@@QEAAGXZ(ptr) basic_streambuf_wchar_sungetc
@ thiscall -arch=win32 ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ(ptr) basic_streambuf_wchar_sungetc
@ cdecl -arch=win64 ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ(ptr) basic_streambuf_wchar_sungetc
@ stub -arch=win32 ?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXAAV12@@Z
@ stub -arch=win64 ?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z
@ stub -arch=win32 ?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXAAV12@@Z
@ stub -arch=win64 ?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z
@ stub -arch=win32 ?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXAAV12@@Z
@ stub -arch=win64 ?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z
@ thiscall -arch=win32 ?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXAAV12@@Z(ptr ptr) basic_ios_char_swap
@ cdecl -arch=win64 ?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z(ptr ptr) basic_ios_char_swap
@ thiscall -arch=win32 ?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXAAV12@@Z(ptr ptr) basic_ios_wchar_swap
@ cdecl -arch=win64 ?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z(ptr ptr) basic_ios_wchar_swap
@ thiscall -arch=win32 ?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXAAV12@@Z(ptr ptr) basic_ios_wchar_swap
@ cdecl -arch=win64 ?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z(ptr ptr) basic_ios_wchar_swap
@ stub -arch=win32 ?swap@?$basic_iostream@DU?$char_traits@D@std@@@std@@QAEXAAV12@@Z
@ stub -arch=win64 ?swap@?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z
@ stub -arch=win32 ?swap@?$basic_iostream@GU?$char_traits@G@std@@@std@@QAEXAAV12@@Z

View File

@ -3461,15 +3461,15 @@
@ cdecl -arch=arm ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAAGXZ(ptr) basic_streambuf_wchar_sungetc
@ thiscall -arch=i386 ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QAEGXZ(ptr) basic_streambuf_wchar_sungetc
@ cdecl -arch=win64 ?sungetc@?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@QEAAGXZ(ptr) basic_streambuf_wchar_sungetc
@ stub -arch=arm ?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QAAXAAV12@@Z
@ stub -arch=i386 ?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXAAV12@@Z
@ stub -arch=win64 ?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z
@ stub -arch=arm ?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QAAXAAV12@@Z
@ stub -arch=i386 ?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXAAV12@@Z
@ stub -arch=win64 ?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z
@ stub -arch=arm ?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAAXAAV12@@Z
@ stub -arch=i386 ?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXAAV12@@Z
@ stub -arch=win64 ?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z
@ cdecl -arch=arm ?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QAAXAAV12@@Z(ptr ptr) basic_ios_char_swap
@ thiscall -arch=i386 ?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXAAV12@@Z(ptr ptr) basic_ios_char_swap
@ cdecl -arch=win64 ?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z(ptr ptr) basic_ios_char_swap
@ cdecl -arch=arm ?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QAAXAAV12@@Z(ptr ptr) basic_ios_wchar_swap
@ thiscall -arch=i386 ?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXAAV12@@Z(ptr ptr) basic_ios_wchar_swap
@ cdecl -arch=win64 ?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z(ptr ptr) basic_ios_wchar_swap
@ cdecl -arch=arm ?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAAXAAV12@@Z(ptr ptr) basic_ios_wchar_swap
@ thiscall -arch=i386 ?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXAAV12@@Z(ptr ptr) basic_ios_wchar_swap
@ cdecl -arch=win64 ?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z(ptr ptr) basic_ios_wchar_swap
@ stub -arch=arm ?swap@?$basic_iostream@DU?$char_traits@D@std@@@std@@IAAXAAV12@@Z
@ stub -arch=i386 ?swap@?$basic_iostream@DU?$char_traits@D@std@@@std@@IAEXAAV12@@Z
@ stub -arch=win64 ?swap@?$basic_iostream@DU?$char_traits@D@std@@@std@@IEAAXAEAV12@@Z

View File

@ -5505,6 +5505,26 @@ char __thiscall basic_ios_char_widen(basic_ios_char *this, char ch)
return ctype_char_widen_ch(ctype_char_use_facet(this->strbuf->loc), ch);
}
/* ?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QAEXAAV12@@Z */
/* ?swap@?$basic_ios@DU?$char_traits@D@std@@@std@@QEAAXAEAV12@@Z */
DEFINE_THISCALL_WRAPPER(basic_ios_char_swap, 8)
void __thiscall basic_ios_char_swap(basic_ios_char *this, basic_ios_char *r)
{
void *swap_ptr;
TRACE("(%p %p)\n", this, r);
if(this == r)
return;
ios_base_swap(&this->base, &r->base);
swap_ptr = this->stream;
this->stream = r->stream;
r->stream = swap_ptr;
this->fillch ^= r->fillch;
r->fillch ^= this->fillch;
this->fillch ^= r->fillch;
}
/* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IAE@XZ */
/* ??0?$basic_ios@_WU?$char_traits@_W@std@@@std@@IEAA@XZ */
@ -5780,6 +5800,29 @@ wchar_t __thiscall basic_ios_wchar_widen(basic_ios_wchar *this, char ch)
return ctype_wchar_widen_ch(ctype_wchar_use_facet(this->strbuf->loc), ch);
}
/* ?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QAEXAAV12@@Z */
/* ?swap@?$basic_ios@GU?$char_traits@G@std@@@std@@QEAAXAEAV12@@Z */
/* ?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QAEXAAV12@@Z */
/* ?swap@?$basic_ios@_WU?$char_traits@_W@std@@@std@@QEAAXAEAV12@@Z */
DEFINE_THISCALL_WRAPPER(basic_ios_wchar_swap, 8)
void __thiscall basic_ios_wchar_swap(basic_ios_wchar *this, basic_ios_wchar *r)
{
void *swap_ptr;
TRACE("(%p %p)\n", this, r);
if(this == r)
return;
ios_base_swap(&this->base, &r->base);
swap_ptr = this->stream;
this->stream = r->stream;
r->stream = swap_ptr;
this->fillch ^= r->fillch;
r->fillch ^= this->fillch;
this->fillch ^= r->fillch;
}
/* Caution: basic_ostream uses virtual inheritance.
* All constructors have additional parameter that says if base class should be initialized.
* Base class needs to be accessed using vbtable.