msvcp71: Added istrstream destructor implementation.

This commit is contained in:
Piotr Caban 2012-10-17 09:59:32 +02:00 committed by Alexandre Julliard
parent 13fa0a8e58
commit 84c5e3a198
2 changed files with 30 additions and 2 deletions

View File

@ -284,6 +284,14 @@ typedef struct {
*/
} ostrstream;
typedef struct {
basic_istream_char base;
strstreambuf buf;
/* virtual inheritance
* basic_ios_char basic_ios;
*/
} istrstream;
typedef struct {
basic_iostream_char base;
strstreambuf buf;
@ -486,6 +494,8 @@ extern const vtable_ptr MSVCP_strstreambuf_vtable;
static const int ostrstream_vbtable[] = {0, sizeof(ostrstream)};
extern const vtable_ptr MSVCP_ostrstream_vtable;
static const int istrstream_vbtable[] = {0, sizeof(istrstream)};
static const int strstream_vbtable1[] = {0, sizeof(strstream)};
static const int strstream_vbtable2[] = {0, sizeof(strstream)-FIELD_OFFSET(strstream, base.base2)};
extern const vtable_ptr MSVCP_strstream_vtable;
@ -12473,6 +12483,24 @@ ostrstream* __thiscall ostrstream_vector_dtor(basic_ios_char *base, unsigned int
return this;
}
static inline istrstream* istrstream_from_basic_ios(basic_ios_char *ptr)
{
return (istrstream*)((char*)ptr-istrstream_vbtable[1]);
}
/* ??1istrstream@std@@UAE@XZ */
/* ??1istrstream@std@@UEAA@XZ */
DEFINE_THISCALL_WRAPPER(istrstream_dtor, 4)
void __thiscall istrstream_dtor(basic_ios_char *base)
{
istrstream *this = istrstream_from_basic_ios(base);
TRACE("(%p)\n", this);
basic_istream_char_dtor(basic_istream_char_to_basic_ios(&this->base));
strstreambuf_dtor(&this->buf);
}
static inline basic_ios_char* strstream_to_basic_ios(strstream *ptr)
{
return (basic_ios_char*)((char*)ptr+strstream_vbtable1[1]);

View File

@ -1197,8 +1197,8 @@
@ cdecl -arch=win64 ??1facet@locale@std@@UEAA@XZ(ptr) locale_facet_dtor
@ thiscall -arch=win32 ??1ios_base@std@@UAE@XZ(ptr) ios_base_dtor
@ cdecl -arch=win64 ??1ios_base@std@@UEAA@XZ(ptr) ios_base_dtor
@ stub -arch=win32 ??1istrstream@std@@UAE@XZ
@ stub -arch=win64 ??1istrstream@std@@UEAA@XZ
@ thiscall -arch=win32 ??1istrstream@std@@UAE@XZ(ptr) istrstream_dtor
@ cdecl -arch=win64 ??1istrstream@std@@UEAA@XZ(ptr) istrstream_dtor
@ thiscall -arch=win32 ??1locale@std@@QAE@XZ(ptr) locale_dtor
@ cdecl -arch=win64 ??1locale@std@@QEAA@XZ(ptr) locale_dtor
@ stub -arch=win32 ??1messages_base@std@@UAE@XZ