msvcp90: Pass base class pointer to virtual functions.

This commit is contained in:
Piotr Caban 2012-07-04 16:15:15 +02:00 committed by Alexandre Julliard
parent c14e98dd32
commit 36f79a1c2d
1 changed files with 242 additions and 62 deletions

View File

@ -4487,6 +4487,16 @@ static inline basic_ios_char* basic_ostream_char_get_basic_ios(basic_ostream_cha
return (basic_ios_char*)((char*)this+this->vbtable[1]);
}
static inline basic_ios_char* basic_ostream_char_to_basic_ios(basic_ostream_char *ptr)
{
return (basic_ios_char*)((char*)ptr+basic_ostream_char_vbtable[1]);
}
static inline basic_ostream_char* basic_ostream_char_from_basic_ios(basic_ios_char *ptr)
{
return (basic_ostream_char*)((char*)ptr-basic_ostream_char_vbtable[1]);
}
/* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
/* ??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z */
DEFINE_THISCALL_WRAPPER(basic_ostream_char_ctor, 16)
@ -4537,8 +4547,10 @@ basic_ostream_char* __thiscall basic_ostream_char_ctor_uninitialized(basic_ostre
/* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
/* ??1?$basic_ostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
DEFINE_THISCALL_WRAPPER(basic_ostream_char_dtor, 4)
void __thiscall basic_ostream_char_dtor(basic_ostream_char *this)
void __thiscall basic_ostream_char_dtor(basic_ios_char *base)
{
basic_ostream_char *this = basic_ostream_char_from_basic_ios(base);
/* don't destroy virtual base here */
TRACE("(%p)\n", this);
}
@ -4549,14 +4561,14 @@ DEFINE_THISCALL_WRAPPER(basic_ostream_char_vbase_dtor, 4)
void __thiscall basic_ostream_char_vbase_dtor(basic_ostream_char *this)
{
TRACE("(%p)\n", this);
basic_ostream_char_dtor(this);
basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(this));
basic_ios_char_dtor(basic_ostream_char_get_basic_ios(this));
}
DEFINE_THISCALL_WRAPPER(MSVCP_basic_ostream_char_vector_dtor, 8)
basic_ostream_char* __thiscall MSVCP_basic_ostream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
{
basic_ostream_char *this = (basic_ostream_char *)((char*)base - basic_ostream_char_vbtable[1] + basic_ostream_char_vbtable[0]);
basic_ostream_char *this = basic_ostream_char_from_basic_ios(base);
TRACE("(%p %x)\n", this, flags);
@ -5237,6 +5249,16 @@ static inline basic_ios_wchar* basic_ostream_wchar_get_basic_ios(basic_ostream_w
return (basic_ios_wchar*)((char*)this+this->vbtable[1]);
}
static inline basic_ios_wchar* basic_ostream_wchar_to_basic_ios(basic_ostream_wchar *ptr)
{
return (basic_ios_wchar*)((char*)ptr+basic_ostream_wchar_vbtable[1]);
}
static inline basic_ostream_wchar* basic_ostream_wchar_from_basic_ios(basic_ios_wchar *ptr)
{
return (basic_ostream_wchar*)((char*)ptr-basic_ostream_wchar_vbtable[1]);
}
/* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
/* ??0?$basic_ostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N@Z */
DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_ctor, 16)
@ -5287,8 +5309,10 @@ basic_ostream_wchar* __thiscall basic_ostream_wchar_ctor_uninitialized(basic_ost
/* ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
/* ??1?$basic_ostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_dtor, 4)
void __thiscall basic_ostream_wchar_dtor(basic_ostream_wchar *this)
void __thiscall basic_ostream_wchar_dtor(basic_ios_wchar *base)
{
basic_ostream_wchar *this = basic_ostream_wchar_from_basic_ios(base);
/* don't destroy virtual base here */
TRACE("(%p)\n", this);
}
@ -5299,14 +5323,14 @@ DEFINE_THISCALL_WRAPPER(basic_ostream_wchar_vbase_dtor, 4)
void __thiscall basic_ostream_wchar_vbase_dtor(basic_ostream_wchar *this)
{
TRACE("(%p)\n", this);
basic_ostream_wchar_dtor(this);
basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(this));
basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(this));
}
DEFINE_THISCALL_WRAPPER(MSVCP_basic_ostream_wchar_vector_dtor, 8)
basic_ostream_wchar* __thiscall MSVCP_basic_ostream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
{
basic_ostream_wchar *this = (basic_ostream_wchar *)((char*)base - basic_ostream_wchar_vbtable[1] + basic_ostream_wchar_vbtable[0]);
basic_ostream_wchar *this = basic_ostream_wchar_from_basic_ios(base);
TRACE("(%p %x)\n", this, flags);
@ -5979,6 +6003,16 @@ static inline basic_ios_char* basic_istream_char_get_basic_ios(basic_istream_cha
return (basic_ios_char*)((char*)this+this->vbtable[1]);
}
static inline basic_ios_char* basic_istream_char_to_basic_ios(basic_istream_char *ptr)
{
return (basic_ios_char*)((char*)ptr+basic_istream_char_vbtable[1]);
}
static inline basic_istream_char* basic_istream_char_from_basic_ios(basic_ios_char *ptr)
{
return (basic_istream_char*)((char*)ptr-basic_istream_char_vbtable[1]);
}
/* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
/* ??0?$basic_istream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N1@Z */
DEFINE_THISCALL_WRAPPER(basic_istream_char_ctor_init, 20)
@ -6036,8 +6070,10 @@ basic_istream_char* __thiscall basic_istream_char_ctor_uninitialized(basic_istre
/* ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UAE@XZ */
/* ??1?$basic_istream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
DEFINE_THISCALL_WRAPPER(basic_istream_char_dtor, 4)
void __thiscall basic_istream_char_dtor(basic_istream_char *this)
void __thiscall basic_istream_char_dtor(basic_ios_char *base)
{
basic_istream_char *this = basic_istream_char_from_basic_ios(base);
/* don't destroy virtual base here */
TRACE("(%p)\n", this);
}
@ -6048,14 +6084,14 @@ DEFINE_THISCALL_WRAPPER(basic_istream_char_vbase_dtor, 4)
void __thiscall basic_istream_char_vbase_dtor(basic_istream_char *this)
{
TRACE("(%p)\n", this);
basic_istream_char_dtor(this);
basic_istream_char_dtor(basic_istream_char_to_basic_ios(this));
basic_ios_char_dtor(basic_istream_char_get_basic_ios(this));
}
DEFINE_THISCALL_WRAPPER(MSVCP_basic_istream_char_vector_dtor, 8)
basic_istream_char* __thiscall MSVCP_basic_istream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
{
basic_istream_char *this = (basic_istream_char *)((char*)base - basic_istream_char_vbtable[1] + basic_istream_char_vbtable[0]);
basic_istream_char *this = basic_istream_char_from_basic_ios(base);
TRACE("(%p %x)\n", this, flags);
@ -7133,6 +7169,16 @@ static inline basic_ios_wchar* basic_istream_wchar_get_basic_ios(basic_istream_w
return (basic_ios_wchar*)((char*)this+this->vbtable[1]);
}
static inline basic_ios_wchar* basic_istream_wchar_to_basic_ios(basic_istream_wchar *ptr)
{
return (basic_ios_wchar*)((char*)ptr+basic_istream_wchar_vbtable[1]);
}
static inline basic_istream_wchar* basic_istream_wchar_from_basic_ios(basic_ios_wchar *ptr)
{
return (basic_istream_wchar*)((char*)ptr-basic_istream_wchar_vbtable[1]);
}
/* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z */
/* ??0?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@_N1@Z */
DEFINE_THISCALL_WRAPPER(basic_istream_wchar_ctor_init, 20)
@ -7190,8 +7236,10 @@ basic_istream_wchar* __thiscall basic_istream_wchar_ctor_uninitialized(basic_ist
/* ??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
/* ??1?$basic_istream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
DEFINE_THISCALL_WRAPPER(basic_istream_wchar_dtor, 4)
void __thiscall basic_istream_wchar_dtor(basic_istream_wchar *this)
void __thiscall basic_istream_wchar_dtor(basic_ios_wchar *base)
{
basic_istream_wchar *this = basic_istream_wchar_from_basic_ios(base);
/* don't destroy virtual base here */
TRACE("(%p)\n", this);
}
@ -7202,14 +7250,14 @@ DEFINE_THISCALL_WRAPPER(basic_istream_wchar_vbase_dtor, 4)
void __thiscall basic_istream_wchar_vbase_dtor(basic_istream_wchar *this)
{
TRACE("(%p)\n", this);
basic_istream_wchar_dtor(this);
basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(this));
basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(this));
}
DEFINE_THISCALL_WRAPPER(MSVCP_basic_istream_wchar_vector_dtor, 8)
basic_istream_wchar* __thiscall MSVCP_basic_istream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
{
basic_istream_wchar *this = (basic_istream_wchar *)((char*)base - basic_istream_wchar_vbtable[1] + basic_istream_wchar_vbtable[0]);
basic_istream_wchar *this = basic_istream_wchar_from_basic_ios(base);
TRACE("(%p %x)\n", this, flags);
@ -8273,6 +8321,16 @@ basic_istream_wchar* __thiscall basic_istream_wchar_read_func_ios_base(
return this;
}
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]);
}
static inline basic_iostream_char* basic_iostream_char_from_basic_ios(basic_ios_char *ptr)
{
return (basic_iostream_char*)((char*)ptr-basic_iostream_char_vbtable1[1]);
}
/* ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
/* ??0?$basic_iostream@DU?$char_traits@D@std@@@std@@QEAA@PEAV?$basic_streambuf@DU?$char_traits@D@std@@@1@@Z */
DEFINE_THISCALL_WRAPPER(basic_iostream_char_ctor, 12)
@ -8301,11 +8359,13 @@ basic_iostream_char* __thiscall basic_iostream_char_ctor(basic_iostream_char *th
/* ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UAE@XZ */
/* ??1?$basic_iostream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
DEFINE_THISCALL_WRAPPER(basic_iostream_char_dtor, 4)
void __thiscall basic_iostream_char_dtor(basic_iostream_char *this)
void __thiscall basic_iostream_char_dtor(basic_ios_char *base)
{
basic_iostream_char *this = basic_iostream_char_from_basic_ios(base);
TRACE("(%p)\n", this);
basic_ostream_char_dtor(&this->base2);
basic_istream_char_dtor(&this->base1);
basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base2));
basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base1));
}
/* ??_D?$basic_iostream@DU?$char_traits@D@std@@@std@@QAEXXZ */
@ -8314,14 +8374,14 @@ DEFINE_THISCALL_WRAPPER(basic_iostream_char_vbase_dtor, 4)
void __thiscall basic_iostream_char_vbase_dtor(basic_iostream_char *this)
{
TRACE("(%p)\n", this);
basic_iostream_char_dtor(this);
basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(this));
basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base1));
}
DEFINE_THISCALL_WRAPPER(MSVCP_basic_iostream_char_vector_dtor, 8)
basic_iostream_char* __thiscall MSVCP_basic_iostream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
{
basic_iostream_char *this = (basic_iostream_char *)((char*)base - basic_iostream_char_vbtable1[1] + basic_iostream_char_vbtable1[0]);
basic_iostream_char *this = basic_iostream_char_from_basic_ios(base);
TRACE("(%p %x)\n", this, flags);
@ -8341,6 +8401,16 @@ basic_iostream_char* __thiscall MSVCP_basic_iostream_char_vector_dtor(basic_ios_
return this;
}
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]);
}
static inline basic_iostream_wchar* basic_iostream_wchar_from_basic_ios(basic_ios_wchar *ptr)
{
return (basic_iostream_wchar*)((char*)ptr-basic_iostream_wchar_vbtable1[1]);
}
/* ??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
/* ??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QEAA@PEAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z */
DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_ctor, 12)
@ -8369,11 +8439,13 @@ basic_iostream_wchar* __thiscall basic_iostream_wchar_ctor(basic_iostream_wchar
/* ??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UAE@XZ */
/* ??1?$basic_iostream@_WU?$char_traits@_W@std@@@std@@UEAA@XZ */
DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_dtor, 4)
void __thiscall basic_iostream_wchar_dtor(basic_iostream_wchar *this)
void __thiscall basic_iostream_wchar_dtor(basic_ios_wchar *base)
{
basic_iostream_wchar *this = basic_iostream_wchar_from_basic_ios(base);
TRACE("(%p)\n", this);
basic_ostream_wchar_dtor(&this->base2);
basic_istream_wchar_dtor(&this->base1);
basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base2));
basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base1));
}
/* ??_D?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAEXXZ */
@ -8382,14 +8454,14 @@ DEFINE_THISCALL_WRAPPER(basic_iostream_wchar_vbase_dtor, 4)
void __thiscall basic_iostream_wchar_vbase_dtor(basic_iostream_wchar *this)
{
TRACE("(%p)\n", this);
basic_iostream_wchar_dtor(this);
basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(this));
basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base1));
}
DEFINE_THISCALL_WRAPPER(MSVCP_basic_iostream_wchar_vector_dtor, 8)
basic_iostream_wchar* __thiscall MSVCP_basic_iostream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
{
basic_iostream_wchar *this = (basic_iostream_wchar *)((char*)base - basic_iostream_wchar_vbtable1[1] + basic_iostream_wchar_vbtable1[0]);
basic_iostream_wchar *this = basic_iostream_wchar_from_basic_ios(base);
TRACE("(%p %x)\n", this, flags);
@ -8409,6 +8481,16 @@ basic_iostream_wchar* __thiscall MSVCP_basic_iostream_wchar_vector_dtor(basic_io
return this;
}
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]);
}
static inline basic_ofstream_char* basic_ofstream_char_from_basic_ios(basic_ios_char *ptr)
{
return (basic_ofstream_char*)((char*)ptr-basic_ofstream_char_vbtable[1]);
}
/* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
/* ??0?$basic_ofstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
DEFINE_THISCALL_WRAPPER(basic_ofstream_char_ctor, 8)
@ -8495,11 +8577,13 @@ basic_ofstream_char* __thiscall basic_ofstream_char_ctor_name_wchar(basic_ofstre
/* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
/* ??1?$basic_ofstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
DEFINE_THISCALL_WRAPPER(basic_ofstream_char_dtor, 4)
void __thiscall basic_ofstream_char_dtor(basic_ofstream_char *this)
void __thiscall basic_ofstream_char_dtor(basic_ios_char *base)
{
basic_ofstream_char *this = basic_ofstream_char_from_basic_ios(base);
TRACE("(%p)\n", this);
basic_ostream_char_dtor(&this->base);
basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base));
basic_filebuf_char_dtor(&this->filebuf);
}
@ -8510,14 +8594,14 @@ void __thiscall basic_ofstream_char_vbase_dtor(basic_ofstream_char *this)
{
TRACE("(%p)\n", this);
basic_ofstream_char_dtor(this);
basic_ofstream_char_dtor(basic_ofstream_char_to_basic_ios(this));
basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base));
}
DEFINE_THISCALL_WRAPPER(MSVCP_basic_ofstream_char_vector_dtor, 8)
basic_ofstream_char* __thiscall MSVCP_basic_ofstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
{
basic_ofstream_char *this = (basic_ofstream_char *)((char*)base - basic_ofstream_char_vbtable[1] + basic_ofstream_char_vbtable[0]);
basic_ofstream_char *this = basic_ofstream_char_from_basic_ios(base);
TRACE("(%p %x)\n", this, flags);
@ -8618,6 +8702,16 @@ basic_filebuf_char* __thiscall basic_ofstream_char_rdbuf(const basic_ofstream_ch
return (basic_filebuf_char*)&this->filebuf;
}
static inline basic_ios_char* basic_ifstream_char_to_basic_ios(basic_ifstream_char *ptr)
{
return (basic_ios_char*)((char*)ptr+basic_ifstream_char_vbtable[1]);
}
static inline basic_ifstream_char* basic_ifstream_char_from_basic_ios(basic_ios_char *ptr)
{
return (basic_ifstream_char*)((char*)ptr-basic_ifstream_char_vbtable[1]);
}
/* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
/* ??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
DEFINE_THISCALL_WRAPPER(basic_ifstream_char_ctor, 8)
@ -8704,11 +8798,13 @@ basic_ifstream_char* __thiscall basic_ifstream_char_ctor_name_wchar(basic_ifstre
/* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
/* ??1?$basic_ifstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
DEFINE_THISCALL_WRAPPER(basic_ifstream_char_dtor, 4)
void __thiscall basic_ifstream_char_dtor(basic_ifstream_char *this)
void __thiscall basic_ifstream_char_dtor(basic_ios_char *base)
{
basic_ifstream_char *this = basic_ifstream_char_from_basic_ios(base);
TRACE("(%p)\n", this);
basic_istream_char_dtor(&this->base);
basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base));
basic_filebuf_char_dtor(&this->filebuf);
}
@ -8719,14 +8815,14 @@ void __thiscall basic_ifstream_char_vbase_dtor(basic_ifstream_char *this)
{
TRACE("(%p)\n", this);
basic_ifstream_char_dtor(this);
basic_ifstream_char_dtor(basic_ifstream_char_to_basic_ios(this));
basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base));
}
DEFINE_THISCALL_WRAPPER(MSVCP_basic_ifstream_char_vector_dtor, 8)
basic_ifstream_char* __thiscall MSVCP_basic_ifstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
{
basic_ifstream_char *this = (basic_ifstream_char *)((char*)base - basic_ifstream_char_vbtable[1] + basic_ifstream_char_vbtable[0]);
basic_ifstream_char *this = basic_ifstream_char_from_basic_ios(base);
TRACE("(%p %x)\n", this, flags);
@ -8827,6 +8923,16 @@ basic_filebuf_char* __thiscall basic_ifstream_char_rdbuf(const basic_ifstream_ch
return (basic_filebuf_char*)&this->filebuf;
}
static inline basic_ios_char* basic_fstream_char_to_basic_ios(basic_fstream_char *ptr)
{
return (basic_ios_char*)((char*)ptr+basic_fstream_char_vbtable1[1]);
}
static inline basic_fstream_char* basic_fstream_char_from_basic_ios(basic_ios_char *ptr)
{
return (basic_fstream_char*)((char*)ptr-basic_fstream_char_vbtable1[1]);
}
/* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@XZ */
/* ??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QEAA@XZ */
DEFINE_THISCALL_WRAPPER(basic_fstream_char_ctor, 8)
@ -8915,11 +9021,13 @@ basic_fstream_char* __thiscall basic_fstream_char_ctor_name_wchar(basic_fstream_
/* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UAE@XZ */
/* ??1?$basic_fstream@DU?$char_traits@D@std@@@std@@UEAA@XZ */
DEFINE_THISCALL_WRAPPER(basic_fstream_char_dtor, 4)
void __thiscall basic_fstream_char_dtor(basic_fstream_char *this)
void __thiscall basic_fstream_char_dtor(basic_ios_char *base)
{
basic_fstream_char *this = basic_fstream_char_from_basic_ios(base);
TRACE("(%p)\n", this);
basic_iostream_char_dtor(&this->base);
basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base));
basic_filebuf_char_dtor(&this->filebuf);
}
@ -8930,14 +9038,14 @@ void __thiscall basic_fstream_char_vbase_dtor(basic_fstream_char *this)
{
TRACE("(%p)\n", this);
basic_fstream_char_dtor(this);
basic_fstream_char_dtor(basic_fstream_char_to_basic_ios(this));
basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base.base1));
}
DEFINE_THISCALL_WRAPPER(MSVCP_basic_fstream_char_vector_dtor, 8)
basic_fstream_char* __thiscall MSVCP_basic_fstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
{
basic_fstream_char *this = (basic_fstream_char *)((char*)base - basic_fstream_char_vbtable1[1] + basic_fstream_char_vbtable1[0]);
basic_fstream_char *this = basic_fstream_char_from_basic_ios(base);
TRACE("(%p %x)\n", this, flags);
@ -9038,6 +9146,16 @@ basic_filebuf_char* __thiscall basic_fstream_char_rdbuf(const basic_fstream_char
return (basic_filebuf_char*)&this->filebuf;
}
static inline basic_ios_char* basic_ostringstream_char_to_basic_ios(basic_ostringstream_char *ptr)
{
return (basic_ios_char*)((char*)ptr+basic_ostringstream_char_vbtable[1]);
}
static inline basic_ostringstream_char* basic_ostringstream_char_from_basic_ios(basic_ios_char *ptr)
{
return (basic_ostringstream_char*)((char*)ptr-basic_ostringstream_char_vbtable[1]);
}
/* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
/* ??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_ctor_str, 16)
@ -9098,12 +9216,14 @@ basic_ostringstream_char* __thiscall basic_ostringstream_char_ctor(
/* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
/* ??1?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
DEFINE_THISCALL_WRAPPER(basic_ostringstream_char_dtor, 4)
void __thiscall basic_ostringstream_char_dtor(basic_ostringstream_char *this)
void __thiscall basic_ostringstream_char_dtor(basic_ios_char *base)
{
basic_ostringstream_char *this = basic_ostringstream_char_from_basic_ios(base);
TRACE("(%p)\n", this);
basic_stringbuf_char_dtor(&this->strbuf);
basic_ostream_char_dtor(&this->base);
basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&this->base));
}
/* ??_D?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
@ -9113,14 +9233,14 @@ void __thiscall basic_ostringstream_char_vbase_dtor(basic_ostringstream_char *th
{
TRACE("(%p)\n", this);
basic_ostringstream_char_dtor(this);
basic_ostringstream_char_dtor(basic_ostringstream_char_to_basic_ios(this));
basic_ios_char_dtor(basic_ostream_char_get_basic_ios(&this->base));
}
DEFINE_THISCALL_WRAPPER(MSVCP_basic_ostringstream_char_vector_dtor, 8)
basic_ostringstream_char* __thiscall MSVCP_basic_ostringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
{
basic_ostringstream_char *this = (basic_ostringstream_char *)((char*)base - basic_ostringstream_char_vbtable[1] + basic_ostringstream_char_vbtable[0]);
basic_ostringstream_char *this = basic_ostringstream_char_from_basic_ios(base);
TRACE("(%p %x)\n", this, flags);
@ -9167,6 +9287,16 @@ basic_string_char* __thiscall basic_ostringstream_char_str_get(const basic_ostri
return basic_stringbuf_char_str_get(&this->strbuf, ret);
}
static inline basic_ios_wchar* basic_ostringstream_wchar_to_basic_ios(basic_ostringstream_wchar *ptr)
{
return (basic_ios_wchar*)((char*)ptr+basic_ostringstream_wchar_vbtable[1]);
}
static inline basic_ostringstream_wchar* basic_ostringstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
{
return (basic_ostringstream_wchar*)((char*)ptr-basic_ostringstream_wchar_vbtable[1]);
}
/* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
/* ??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_ctor_str, 16)
@ -9227,12 +9357,14 @@ basic_ostringstream_wchar* __thiscall basic_ostringstream_wchar_ctor(
/* ??1?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
/* ??1?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
DEFINE_THISCALL_WRAPPER(basic_ostringstream_wchar_dtor, 4)
void __thiscall basic_ostringstream_wchar_dtor(basic_ostringstream_wchar *this)
void __thiscall basic_ostringstream_wchar_dtor(basic_ios_wchar *base)
{
basic_ostringstream_wchar *this = basic_ostringstream_wchar_from_basic_ios(base);
TRACE("(%p)\n", this);
basic_stringbuf_wchar_dtor(&this->strbuf);
basic_ostream_wchar_dtor(&this->base);
basic_ostream_wchar_dtor(basic_ostream_wchar_to_basic_ios(&this->base));
}
/* ??_D?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
@ -9242,14 +9374,14 @@ void __thiscall basic_ostringstream_wchar_vbase_dtor(basic_ostringstream_wchar *
{
TRACE("(%p)\n", this);
basic_ostringstream_wchar_dtor(this);
basic_ostringstream_wchar_dtor(basic_ostringstream_wchar_to_basic_ios(this));
basic_ios_wchar_dtor(basic_ostream_wchar_get_basic_ios(&this->base));
}
DEFINE_THISCALL_WRAPPER(MSVCP_basic_ostringstream_wchar_vector_dtor, 8)
basic_ostringstream_wchar* __thiscall MSVCP_basic_ostringstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
{
basic_ostringstream_wchar *this = (basic_ostringstream_wchar *)((char*)base - basic_ostringstream_wchar_vbtable[1] + basic_ostringstream_wchar_vbtable[0]);
basic_ostringstream_wchar *this = basic_ostringstream_wchar_from_basic_ios(base);
TRACE("(%p %x)\n", this, flags);
@ -9296,6 +9428,16 @@ basic_string_wchar* __thiscall basic_ostringstream_wchar_str_get(const basic_ost
return basic_stringbuf_wchar_str_get(&this->strbuf, ret);
}
static inline basic_ios_char* basic_istringstream_char_to_basic_ios(basic_istringstream_char *ptr)
{
return (basic_ios_char*)((char*)ptr+basic_istringstream_char_vbtable[1]);
}
static inline basic_istringstream_char* basic_istringstream_char_from_basic_ios(basic_ios_char *ptr)
{
return (basic_istringstream_char*)((char*)ptr-basic_istringstream_char_vbtable[1]);
}
/* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
/* ??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
DEFINE_THISCALL_WRAPPER(basic_istringstream_char_ctor_str, 16)
@ -9356,12 +9498,14 @@ basic_istringstream_char* __thiscall basic_istringstream_char_ctor(
/* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
/* ??1?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
DEFINE_THISCALL_WRAPPER(basic_istringstream_char_dtor, 4)
void __thiscall basic_istringstream_char_dtor(basic_istringstream_char *this)
void __thiscall basic_istringstream_char_dtor(basic_ios_char *base)
{
basic_istringstream_char *this = basic_istringstream_char_from_basic_ios(base);
TRACE("(%p)\n", this);
basic_stringbuf_char_dtor(&this->strbuf);
basic_istream_char_dtor(&this->base);
basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base));
}
/* ??_D?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXXZ */
@ -9371,14 +9515,14 @@ void __thiscall basic_istringstream_char_vbase_dtor(basic_istringstream_char *th
{
TRACE("(%p)\n", this);
basic_istringstream_char_dtor(this);
basic_istringstream_char_dtor(basic_istringstream_char_to_basic_ios(this));
basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base));
}
DEFINE_THISCALL_WRAPPER(MSVCP_basic_istringstream_char_vector_dtor, 8)
basic_istringstream_char* __thiscall MSVCP_basic_istringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
{
basic_istringstream_char *this = (basic_istringstream_char *)((char*)base - basic_istringstream_char_vbtable[1] + basic_istringstream_char_vbtable[0]);
basic_istringstream_char *this = basic_istringstream_char_from_basic_ios(base);
TRACE("(%p %x)\n", this, flags);
@ -9425,6 +9569,16 @@ basic_string_char* __thiscall basic_istringstream_char_str_get(const basic_istri
return basic_stringbuf_char_str_get(&this->strbuf, ret);
}
static inline basic_ios_wchar* basic_istringstream_wchar_to_basic_ios(basic_istringstream_wchar *ptr)
{
return (basic_ios_wchar*)((char*)ptr+basic_istringstream_wchar_vbtable[1]);
}
static inline basic_istringstream_wchar* basic_istringstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
{
return (basic_istringstream_wchar*)((char*)ptr-basic_istringstream_wchar_vbtable[1]);
}
/* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
/* ??0?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_ctor_str, 16)
@ -9485,12 +9639,14 @@ basic_istringstream_wchar* __thiscall basic_istringstream_wchar_ctor(
/* ??1?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
/* ??1?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
DEFINE_THISCALL_WRAPPER(basic_istringstream_wchar_dtor, 4)
void __thiscall basic_istringstream_wchar_dtor(basic_istringstream_wchar *this)
void __thiscall basic_istringstream_wchar_dtor(basic_ios_wchar *base)
{
basic_istringstream_wchar *this = basic_istringstream_wchar_from_basic_ios(base);
TRACE("(%p)\n", this);
basic_stringbuf_wchar_dtor(&this->strbuf);
basic_istream_wchar_dtor(&this->base);
basic_istream_wchar_dtor(basic_istream_wchar_to_basic_ios(&this->base));
}
/* ??_D?$basic_istringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXXZ */
@ -9500,14 +9656,14 @@ void __thiscall basic_istringstream_wchar_vbase_dtor(basic_istringstream_wchar *
{
TRACE("(%p)\n", this);
basic_istringstream_wchar_dtor(this);
basic_istringstream_wchar_dtor(basic_istringstream_wchar_to_basic_ios(this));
basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base));
}
DEFINE_THISCALL_WRAPPER(MSVCP_basic_istringstream_wchar_vector_dtor, 8)
basic_istringstream_wchar* __thiscall MSVCP_basic_istringstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
{
basic_istringstream_wchar *this = (basic_istringstream_wchar *)((char*)base - basic_istringstream_wchar_vbtable[1] + basic_istringstream_wchar_vbtable[0]);
basic_istringstream_wchar *this = basic_istringstream_wchar_from_basic_ios(base);
TRACE("(%p %x)\n", this, flags);
@ -9554,6 +9710,16 @@ basic_string_wchar* __thiscall basic_istringstream_wchar_str_get(const basic_ist
return basic_stringbuf_wchar_str_get(&this->strbuf, ret);
}
static inline basic_ios_char* basic_stringstream_char_to_basic_ios(basic_stringstream_char *ptr)
{
return (basic_ios_char*)((char*)ptr+basic_stringstream_char_vbtable1[1]);
}
static inline basic_stringstream_char* basic_stringstream_char_from_basic_ios(basic_ios_char *ptr)
{
return (basic_stringstream_char*)((char*)ptr-basic_stringstream_char_vbtable1[1]);
}
/* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
/* ??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z */
DEFINE_THISCALL_WRAPPER(basic_stringstream_char_ctor_str, 16)
@ -9617,11 +9783,13 @@ basic_stringstream_char* __thiscall basic_stringstream_char_ctor(
/* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UAE@XZ */
/* ??1?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@UEAA@XZ */
DEFINE_THISCALL_WRAPPER(basic_stringstream_char_dtor, 4)
void __thiscall basic_stringstream_char_dtor(basic_stringstream_char *this)
void __thiscall basic_stringstream_char_dtor(basic_ios_char *base)
{
basic_stringstream_char *this = basic_stringstream_char_from_basic_ios(base);
TRACE("(%p)\n", this);
basic_iostream_char_dtor(&this->base);
basic_iostream_char_dtor(basic_iostream_char_to_basic_ios(&this->base));
basic_stringbuf_char_dtor(&this->strbuf);
}
@ -9632,14 +9800,14 @@ void __thiscall basic_stringstream_char_vbase_dtor(basic_stringstream_char *this
{
TRACE("(%p)\n", this);
basic_stringstream_char_dtor(this);
basic_stringstream_char_dtor(basic_stringstream_char_to_basic_ios(this));
basic_ios_char_dtor(basic_istream_char_get_basic_ios(&this->base.base1));
}
DEFINE_THISCALL_WRAPPER(MSVCP_basic_stringstream_char_vector_dtor, 8)
basic_stringstream_char* __thiscall MSVCP_basic_stringstream_char_vector_dtor(basic_ios_char *base, unsigned int flags)
{
basic_stringstream_char *this = (basic_stringstream_char *)((char*)base - basic_stringstream_char_vbtable1[1] + basic_stringstream_char_vbtable1[0]);
basic_stringstream_char *this = basic_stringstream_char_from_basic_ios(base);
TRACE("(%p %x)\n", this, flags);
@ -9686,6 +9854,16 @@ basic_string_char* __thiscall basic_stringstream_char_str_get(const basic_string
return basic_stringbuf_char_str_get(&this->strbuf, ret);
}
static inline basic_ios_wchar* basic_stringstream_wchar_to_basic_ios(basic_stringstream_wchar *ptr)
{
return (basic_ios_wchar*)((char*)ptr+basic_stringstream_wchar_vbtable1[1]);
}
static inline basic_stringstream_wchar* basic_stringstream_wchar_from_basic_ios(basic_ios_wchar *ptr)
{
return (basic_stringstream_wchar*)((char*)ptr-basic_stringstream_wchar_vbtable1[1]);
}
/* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
/* ??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA@AEBV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z */
DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_ctor_str, 16)
@ -9749,11 +9927,13 @@ basic_stringstream_wchar* __thiscall basic_stringstream_wchar_ctor(
/* ??1?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UAE@XZ */
/* ??1?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@UEAA@XZ */
DEFINE_THISCALL_WRAPPER(basic_stringstream_wchar_dtor, 4)
void __thiscall basic_stringstream_wchar_dtor(basic_stringstream_wchar *this)
void __thiscall basic_stringstream_wchar_dtor(basic_ios_wchar *base)
{
basic_stringstream_wchar *this = basic_stringstream_wchar_from_basic_ios(base);
TRACE("(%p)\n", this);
basic_iostream_wchar_dtor(&this->base);
basic_iostream_wchar_dtor(basic_iostream_wchar_to_basic_ios(&this->base));
basic_stringbuf_wchar_dtor(&this->strbuf);
}
@ -9764,14 +9944,14 @@ void __thiscall basic_stringstream_wchar_vbase_dtor(basic_stringstream_wchar *th
{
TRACE("(%p)\n", this);
basic_stringstream_wchar_dtor(this);
basic_stringstream_wchar_dtor(basic_stringstream_wchar_to_basic_ios(this));
basic_ios_wchar_dtor(basic_istream_wchar_get_basic_ios(&this->base.base1));
}
DEFINE_THISCALL_WRAPPER(MSVCP_basic_stringstream_wchar_vector_dtor, 8)
basic_stringstream_wchar* __thiscall MSVCP_basic_stringstream_wchar_vector_dtor(basic_ios_wchar *base, unsigned int flags)
{
basic_stringstream_wchar *this = (basic_stringstream_wchar *)((char*)base - basic_stringstream_wchar_vbtable1[1] + basic_stringstream_wchar_vbtable1[0]);
basic_stringstream_wchar *this = basic_stringstream_wchar_from_basic_ios(base);
TRACE("(%p %x)\n", this, flags);
@ -9907,15 +10087,15 @@ void init_io(void)
void free_io(void)
{
basic_istream_char_dtor(&cin.obj);
basic_istream_char_dtor(basic_istream_char_to_basic_ios(&cin.obj));
basic_filebuf_char_dtor(&filebuf_stdin);
basic_ostream_char_dtor(&cout.obj);
basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&cout.obj));
basic_filebuf_char_dtor(&filebuf_stdout);
basic_ostream_char_dtor(&cerr.obj);
basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&cerr.obj));
basic_filebuf_char_dtor(&filebuf_stderr);
basic_ostream_char_dtor(&clog.obj);
basic_ostream_char_dtor(basic_ostream_char_to_basic_ios(&clog.obj));
basic_filebuf_char_dtor(&filebuf_log);
}