1
0
mirror of https://github.com/wine-mirror/wine synced 2024-07-08 20:06:18 +00:00

msvcirt: Implement ofstream class.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=31342
Signed-off-by: Gijs Vermeulen <gijsvrm@gmail.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Gijs Vermeulen 2020-09-22 16:07:55 +02:00 committed by Alexandre Julliard
parent 96dcee6430
commit d18a9b9630
5 changed files with 699 additions and 110 deletions

View File

@ -186,6 +186,8 @@ extern const vtable_ptr MSVCP_ostream_vtable;
extern const vtable_ptr MSVCP_ostream_withassign_vtable;
/* ??_7ostrstream@@6B@ */
extern const vtable_ptr MSVCP_ostrstream_vtable;
/* ??_7ofstream@@6B@ */
extern const vtable_ptr MSVCP_ofstream_vtable;
/* ??_7istream@@6B@ */
extern const vtable_ptr MSVCP_istream_vtable;
/* ??_7istream_withassign@@6B@ */
@ -260,6 +262,8 @@ __ASM_BLOCK_BEGIN(vtables)
VTABLE_ADD_FUNC(ostream_vector_dtor));
__ASM_VTABLE(ostrstream,
VTABLE_ADD_FUNC(ostream_vector_dtor));
__ASM_VTABLE(ofstream,
VTABLE_ADD_FUNC(ostream_vector_dtor));
__ASM_VTABLE(istream,
VTABLE_ADD_FUNC(istream_vector_dtor));
__ASM_VTABLE(istream_withassign,
@ -284,6 +288,7 @@ __ASM_BLOCK_END
/* ??_8ostream@@7B@ */
/* ??_8ostream_withassign@@7B@ */
/* ??_8ostrstream@@7B@ */
/* ??_8ofstream@@7B@ */
const int ostream_vbtable[] = {0, VBTABLE_ENTRY(ostream, FIELD_OFFSET(ostream, vbtable), ios)};
/* ??_8istream@@7B@ */
/* ??_8istream_withassign@@7B@ */
@ -309,6 +314,8 @@ DEFINE_RTTI_DATA2(ostream_withassign, sizeof(ostream),
&ostream_rtti_base_descriptor, &ios_rtti_base_descriptor, ".?AVostream_withassign@@")
DEFINE_RTTI_DATA2(ostrstream, sizeof(ostream),
&ostream_rtti_base_descriptor, &ios_rtti_base_descriptor, ".?AVostrstream@@")
DEFINE_RTTI_DATA2(ofstream, sizeof(ostream),
&ostream_rtti_base_descriptor, &ios_rtti_base_descriptor, ".?AVofstream@@")
DEFINE_RTTI_DATA1(istream, sizeof(istream), &ios_rtti_base_descriptor, ".?AVistream@@")
DEFINE_RTTI_DATA2(istream_withassign, sizeof(istream),
&istream_rtti_base_descriptor, &ios_rtti_base_descriptor, ".?AVistream_withassign@@")
@ -2404,6 +2411,8 @@ ostream* __thiscall ostream_copy_ctor(ostream *this, const ostream *copy, BOOL v
/* ??1ostream_withassign@@UEAA@XZ */
/* ??1ostrstream@@UAE@XZ */
/* ??1ostrstream@@UEAA@XZ */
/* ??1ofstream@@UAE@XZ */
/* ??1ofstream@@UEAA@XZ */
DEFINE_THISCALL_WRAPPER(ostream_dtor, 4)
void __thiscall ostream_dtor(ios *base)
{
@ -2442,6 +2451,8 @@ ostream* __thiscall ostream_assign_sb(ostream *this, streambuf *sb)
/* ??4ostream_withassign@@QEAAAEAVostream@@AEBV1@@Z */
/* ??4ostrstream@@QAEAAV0@ABV0@@Z */
/* ??4ostrstream@@QEAAAEAV0@AEBV0@@Z */
/* ??4ofstream@@QAEAAV0@ABV0@@Z */
/* ??4ofstream@@QEAAAEAV0@AEBV0@@Z */
DEFINE_THISCALL_WRAPPER(ostream_assign, 8)
ostream* __thiscall ostream_assign(ostream *this, const ostream *rhs)
{
@ -2454,6 +2465,8 @@ ostream* __thiscall ostream_assign(ostream *this, const ostream *rhs)
/* ??_Dostream_withassign@@QEAAXXZ */
/* ??_Dostrstream@@QAEXXZ */
/* ??_Dostrstream@@QEAAXXZ */
/* ??_Dofstream@@QAEXXZ */
/* ??_Dofstream@@QEAAXXZ */
DEFINE_THISCALL_WRAPPER(ostream_vbase_dtor, 4)
void __thiscall ostream_vbase_dtor(ostream *this)
{
@ -2468,6 +2481,7 @@ void __thiscall ostream_vbase_dtor(ostream *this)
/* ??_Eostream@@UAEPAXI@Z */
/* ??_Eostream_withassign@@UAEPAXI@Z */
/* ??_Eostrstream@@UAEPAXI@Z */
/* ??_Eofstream@@UAEPAXI@Z */
DEFINE_THISCALL_WRAPPER(ostream_vector_dtor, 8)
ostream* __thiscall ostream_vector_dtor(ios *base, unsigned int flags)
{
@ -2493,6 +2507,7 @@ ostream* __thiscall ostream_vector_dtor(ios *base, unsigned int flags)
/* ??_Gostream@@UAEPAXI@Z */
/* ??_Gostream_withassign@@UAEPAXI@Z */
/* ??_Gostrstream@@UAEPAXI@Z */
/* ??_Gofstream@@UAEPAXI@Z */
DEFINE_THISCALL_WRAPPER(ostream_scalar_dtor, 8)
ostream* __thiscall ostream_scalar_dtor(ios *base, unsigned int flags)
{
@ -3086,6 +3101,191 @@ char* __thiscall ostrstream_str(ostream *this)
return strstreambuf_str(ostrstream_rdbuf(this));
}
/* ??0ofstream@@QAE@ABV0@@Z */
/* ??0ofstream@@QEAA@AEBV0@@Z */
DEFINE_THISCALL_WRAPPER(ofstream_copy_ctor, 12)
ostream* __thiscall ofstream_copy_ctor(ostream *this, const ostream *copy, BOOL virt_init)
{
TRACE("(%p %p %d)\n", this, copy, virt_init);
ostream_withassign_copy_ctor(this, copy, virt_init);
ostream_get_ios(this)->vtable = &MSVCP_ofstream_vtable;
return this;
}
/* ??0ofstream@@QAE@HPADH@Z */
/* ??0ofstream@@QEAA@HPEADH@Z */
DEFINE_THISCALL_WRAPPER(ofstream_buffer_ctor, 20)
ostream* __thiscall ofstream_buffer_ctor(ostream *this, filedesc fd, char *buffer, int length, BOOL virt_init)
{
ios *base;
filebuf *fb = MSVCRT_operator_new(sizeof(filebuf));
TRACE("(%p %d %p %d %d)\n", this, fd, buffer, length, virt_init);
if (!fb) {
FIXME("out of memory\n");
return NULL;
}
filebuf_fd_reserve_ctor(fb, fd, buffer, length);
ostream_sb_ctor(this, &fb->base, virt_init);
base = ostream_get_ios(this);
base->vtable = &MSVCP_ofstream_vtable;
base->delbuf = 1;
return this;
}
/* ??0ofstream@@QAE@H@Z */
/* ??0ofstream@@QEAA@H@Z */
DEFINE_THISCALL_WRAPPER(ofstream_fd_ctor, 12)
ostream* __thiscall ofstream_fd_ctor(ostream *this, filedesc fd, BOOL virt_init)
{
ios *base;
filebuf *fb = MSVCRT_operator_new(sizeof(filebuf));
TRACE("(%p %d %d)\n", this, fd, virt_init);
if (!fb) {
FIXME("out of memory\n");
return NULL;
}
filebuf_fd_ctor(fb, fd);
ostream_sb_ctor(this, &fb->base, virt_init);
base = ostream_get_ios(this);
base->vtable = &MSVCP_ofstream_vtable;
base->delbuf = 1;
return this;
}
/* ??0ofstream@@QAE@PBDHH@Z */
/* ??0ofstream@@QEAA@PEBDHH@Z */
DEFINE_THISCALL_WRAPPER(ofstream_open_ctor, 20)
ostream* __thiscall ofstream_open_ctor(ostream *this, const char *name, int mode, int protection, BOOL virt_init)
{
ios *base;
filebuf *fb = MSVCRT_operator_new(sizeof(filebuf));
TRACE("(%p %s %d %d %d)\n", this, name, mode, protection, virt_init);
if (!fb) {
FIXME("out of memory\n");
return NULL;
}
filebuf_ctor(fb);
ostream_sb_ctor(this, &fb->base, virt_init);
base = ostream_get_ios(this);
base->vtable = &MSVCP_ofstream_vtable;
base->delbuf = 1;
if (filebuf_open(fb, name, mode|OPENMODE_out, protection) == NULL)
base->state |= IOSTATE_failbit;
return this;
}
/* ??0ofstream@@QAE@XZ */
/* ??0ofstream@@QEAA@XZ */
DEFINE_THISCALL_WRAPPER(ofstream_ctor, 8)
ostream* __thiscall ofstream_ctor(ostream *this, BOOL virt_init)
{
return ofstream_fd_ctor(this, -1, virt_init);
}
/* ?rdbuf@ofstream@@QBEPAVfilebuf@@XZ */
/* ?rdbuf@ofstream@@QEBAPEAVfilebuf@@XZ */
DEFINE_THISCALL_WRAPPER(ofstream_rdbuf, 4)
filebuf* __thiscall ofstream_rdbuf(const ostream *this)
{
TRACE("(%p)\n", this);
return (filebuf*) ostream_get_ios(this)->sb;
}
/* ?fd@ofstream@@QBEHXZ */
/* ?fd@ofstream@@QEBAHXZ */
DEFINE_THISCALL_WRAPPER(ofstream_fd, 4)
filedesc __thiscall ofstream_fd(ostream *this)
{
TRACE("(%p)\n", this);
return filebuf_fd(ofstream_rdbuf(this));
}
/* ?attach@ofstream@@QAEXH@Z */
/* ?attach@ofstream@@QEAAXH@Z */
DEFINE_THISCALL_WRAPPER(ofstream_attach, 8)
void __thiscall ofstream_attach(ostream *this, filedesc fd)
{
ios *base = ostream_get_ios(this);
TRACE("(%p %d)\n", this, fd);
if (filebuf_attach(ofstream_rdbuf(this), fd) == NULL)
ios_clear(base, base->state | IOSTATE_failbit);
}
/* ?close@ofstream@@QAEXXZ */
/* ?close@ofstream@@QEAAXXZ */
DEFINE_THISCALL_WRAPPER(ofstream_close, 4)
void __thiscall ofstream_close(ostream *this)
{
ios *base = ostream_get_ios(this);
TRACE("(%p)\n", this);
if (filebuf_close(ofstream_rdbuf(this)) == NULL)
ios_clear(base, base->state | IOSTATE_failbit);
else
ios_clear(base, IOSTATE_goodbit);
}
/* ?is_open@ofstream@@QBEHXZ */
/* ?is_open@ofstream@@QEBAHXZ */
DEFINE_THISCALL_WRAPPER(ofstream_is_open, 4)
int __thiscall ofstream_is_open(const ostream *this)
{
TRACE("(%p)\n", this);
return filebuf_is_open(ofstream_rdbuf(this));
}
/* ?open@ofstream@@QAEXPBDHH@Z */
/* ?open@ofstream@@QEAAXPEBDHH@Z */
DEFINE_THISCALL_WRAPPER(ofstream_open, 16)
void __thiscall ofstream_open(ostream *this, const char *name, ios_open_mode mode, int protection)
{
ios *base = ostream_get_ios(this);
TRACE("(%p %s %d %d)\n", this, name, mode, protection);
if (filebuf_open(ofstream_rdbuf(this), name, mode|OPENMODE_out, protection) == NULL)
ios_clear(base, base->state | IOSTATE_failbit);
}
/* ?setbuf@ofstream@@QAEPAVstreambuf@@PADH@Z */
/* ?setbuf@ofstream@@QEAAPEAVstreambuf@@PEADH@Z */
DEFINE_THISCALL_WRAPPER(ofstream_setbuf, 12)
streambuf* __thiscall ofstream_setbuf(ostream *this, char *buffer, int length)
{
ios *base = ostream_get_ios(this);
filebuf* fb = ofstream_rdbuf(this);
TRACE("(%p %p %d)\n", this, buffer, length);
if (filebuf_is_open(fb)) {
ios_clear(base, base->state | IOSTATE_failbit);
return NULL;
}
return filebuf_setbuf(fb, buffer, length);
}
/* ?setmode@ofstream@@QAEHH@Z */
/* ?setmode@ofstream@@QEAAHH@Z */
DEFINE_THISCALL_WRAPPER(ofstream_setmode, 8)
int __thiscall ofstream_setmode(ostream *this, int mode)
{
TRACE("(%p %d)\n", this, mode);
return filebuf_setmode(ofstream_rdbuf(this), mode);
}
static inline ios* istream_get_ios(const istream *this)
{
return (ios*)((char*)this + this->vbtable[1]);
@ -4218,7 +4418,7 @@ istream* __thiscall ifstream_open_ctor(istream *this, const char *name, ios_open
base->vtable = &MSVCP_ifstream_vtable;
base->delbuf = 1;
if (!filebuf_open(fb, name, mode|OPENMODE_in, protection))
if (filebuf_open(fb, name, mode|OPENMODE_in, protection) == NULL)
base->state |= IOSTATE_failbit;
return this;
}
@ -4633,7 +4833,7 @@ iostream* __thiscall fstream_open_ctor(iostream *this, const char *name, ios_ope
base = istream_get_ios(&this->base1);
base->delbuf = 1;
if (!filebuf_open(fb, name, mode, protection))
if (filebuf_open(fb, name, mode, protection) == NULL)
base->state |= IOSTATE_failbit;
return this;
}
@ -4801,6 +5001,7 @@ static void init_io(void *base)
init_ostream_rtti(base);
init_ostream_withassign_rtti(base);
init_ostrstream_rtti(base);
init_ofstream_rtti(base);
init_istream_rtti(base);
init_istream_withassign_rtti(base);
init_istrstream_rtti(base);

View File

@ -70,16 +70,16 @@
@ cdecl -arch=win64 ??0logic_error@@QEAA@AEBQEBD@Z(ptr ptr) MSVCP_logic_error_ctor
@ thiscall -arch=win32 ??0logic_error@@QAE@ABV0@@Z(ptr ptr) MSVCP_logic_error_copy_ctor
@ cdecl -arch=win64 ??0logic_error@@QEAA@AEBV0@@Z(ptr ptr) MSVCP_logic_error_copy_ctor
@ stub -arch=win32 ??0ofstream@@QAE@ABV0@@Z # __thiscall ofstream::ofstream(class ofstream const &)
@ stub -arch=win64 ??0ofstream@@QEAA@AEBV0@@Z
@ stub -arch=win32 ??0ofstream@@QAE@H@Z # __thiscall ofstream::ofstream(int)
@ stub -arch=win64 ??0ofstream@@QEAA@H@Z
@ stub -arch=win32 ??0ofstream@@QAE@HPADH@Z # __thiscall ofstream::ofstream(int,char *,int)
@ stub -arch=win64 ??0ofstream@@QEAA@HPEADH@Z
@ stub -arch=win32 ??0ofstream@@QAE@PBDHH@Z # __thiscall ofstream::ofstream(char const *,int,int)
@ stub -arch=win64 ??0ofstream@@QEAA@PEBDHH@Z
@ stub -arch=win32 ??0ofstream@@QAE@XZ # __thiscall ofstream::ofstream(void)
@ stub -arch=win64 ??0ofstream@@QEAA@XZ
@ thiscall -arch=win32 ??0ofstream@@QAE@ABV0@@Z(ptr ptr long) ofstream_copy_ctor
@ cdecl -arch=win64 ??0ofstream@@QEAA@AEBV0@@Z(ptr ptr long) ofstream_copy_ctor
@ thiscall -arch=win32 ??0ofstream@@QAE@H@Z(ptr long long) ofstream_fd_ctor
@ cdecl -arch=win64 ??0ofstream@@QEAA@H@Z(ptr long long) ofstream_fd_ctor
@ thiscall -arch=win32 ??0ofstream@@QAE@HPADH@Z(ptr long ptr long long) ofstream_buffer_ctor
@ cdecl -arch=win64 ??0ofstream@@QEAA@HPEADH@Z(ptr long ptr long long) ofstream_buffer_ctor
@ thiscall -arch=win32 ??0ofstream@@QAE@PBDHH@Z(ptr str long long long) ofstream_open_ctor
@ cdecl -arch=win64 ??0ofstream@@QEAA@PEBDHH@Z(ptr str long long long) ofstream_open_ctor
@ thiscall -arch=win32 ??0ofstream@@QAE@XZ(ptr long) ofstream_ctor
@ cdecl -arch=win64 ??0ofstream@@QEAA@XZ(ptr long) ofstream_ctor
@ thiscall -arch=win32 ??0ostream@@IAE@ABV0@@Z(ptr ptr long) ostream_copy_ctor
@ cdecl -arch=win64 ??0ostream@@IEAA@AEBV0@@Z(ptr ptr long) ostream_copy_ctor
@ thiscall -arch=win32 ??0ostream@@IAE@XZ(ptr long) ostream_ctor
@ -152,8 +152,8 @@
@ cdecl -arch=win64 ??1istrstream@@UEAA@XZ(ptr) istream_dtor
@ thiscall -arch=win32 ??1logic_error@@UAE@XZ(ptr) MSVCP_logic_error_dtor
@ cdecl -arch=win64 ??1logic_error@@UEAA@XZ(ptr) MSVCP_logic_error_dtor
@ stub -arch=win32 ??1ofstream@@UAE@XZ # virtual __thiscall ofstream::~ofstream(void)
@ stub -arch=win64 ??1ofstream@@UEAA@XZ
@ thiscall -arch=win32 ??1ofstream@@UAE@XZ(ptr) ostream_dtor
@ cdecl -arch=win64 ??1ofstream@@UEAA@XZ(ptr) ostream_dtor
@ thiscall -arch=win32 ??1ostream@@UAE@XZ(ptr) ostream_dtor
@ cdecl -arch=win64 ??1ostream@@UEAA@XZ(ptr) ostream_dtor
@ thiscall -arch=win32 ??1ostream_withassign@@UAE@XZ(ptr) ostream_dtor
@ -200,8 +200,8 @@
@ cdecl -arch=win64 ??4istrstream@@QEAAAEAV0@AEBV0@@Z(ptr ptr) istream_assign
@ thiscall -arch=win32 ??4logic_error@@QAEAAV0@ABV0@@Z(ptr ptr) MSVCP_logic_error_assign
@ cdecl -arch=win64 ??4logic_error@@QEAAAEAV0@AEBV0@@Z(ptr ptr) MSVCP_logic_error_assign
@ stub -arch=win32 ??4ofstream@@QAEAAV0@ABV0@@Z # class ofstream & __thiscall ofstream::operator=(class ofstream const &)
@ stub -arch=win64 ??4ofstream@@QEAAAEAV0@AEBV0@@Z
@ thiscall -arch=win32 ??4ofstream@@QAEAAV0@ABV0@@Z(ptr ptr) ostream_assign
@ cdecl -arch=win64 ??4ofstream@@QEAAAEAV0@AEBV0@@Z(ptr ptr) ostream_assign
@ thiscall -arch=win32 ??4ostream@@IAEAAV0@ABV0@@Z(ptr ptr) ostream_assign
@ cdecl -arch=win64 ??4ostream@@IEAAAEAV0@AEBV0@@Z(ptr ptr) ostream_assign
@ thiscall -arch=win32 ??4ostream@@IAEAAV0@PAVstreambuf@@@Z(ptr ptr) ostream_assign_sb
@ -312,7 +312,7 @@
@ extern ??_7istream_withassign@@6B@ MSVCP_istream_vtable
@ extern ??_7istrstream@@6B@ MSVCP_istrstream_vtable
@ extern ??_7logic_error@@6B@ MSVCP_logic_error_vtable
# @ extern ??_7ofstream@@6B@ # const ofstream::`vftable'
@ extern ??_7ofstream@@6B@ MSVCP_ofstream_vtable
@ extern ??_7ostream@@6B@ MSVCP_ostream_vtable
@ extern ??_7ostream_withassign@@6B@ MSVCP_ostream_withassign_vtable
@ extern ??_7ostrstream@@6B@ MSVCP_ostrstream_vtable
@ -329,7 +329,7 @@
@ extern ??_8istream@@7B@ istream_vbtable
@ extern ??_8istream_withassign@@7B@ istream_vbtable
@ extern ??_8istrstream@@7B@ istream_vbtable
# @ extern ??_8ofstream@@7B@ # const ofstream::`vbtable'
@ extern ??_8ofstream@@7B@ ostream_vbtable
@ extern ??_8ostream@@7B@ ostream_vbtable
@ extern ??_8ostream_withassign@@7B@ ostream_vbtable
@ extern ??_8ostrstream@@7B@ ostream_vbtable
@ -349,8 +349,8 @@
@ cdecl -arch=win64 ??_Distream_withassign@@QEAAXXZ(ptr) istream_vbase_dtor
@ thiscall -arch=win32 ??_Distrstream@@QAEXXZ(ptr) istream_vbase_dtor
@ cdecl -arch=win64 ??_Distrstream@@QEAAXXZ(ptr) istream_vbase_dtor
@ stub -arch=win32 ??_Dofstream@@QAEXXZ # void __thiscall ofstream::`vbase destructor'(void)
@ stub -arch=win64 ??_Dofstream@@QEAAXXZ
@ thiscall -arch=win32 ??_Dofstream@@QAEXXZ(ptr) ostream_vbase_dtor
@ cdecl -arch=win64 ??_Dofstream@@QEAAXXZ(ptr) ostream_vbase_dtor
@ thiscall -arch=win32 ??_Dostream@@QAEXXZ(ptr) ostream_vbase_dtor
@ cdecl -arch=win64 ??_Dostream@@QEAAXXZ(ptr) ostream_vbase_dtor
@ thiscall -arch=win32 ??_Dostream_withassign@@QAEXXZ(ptr) ostream_vbase_dtor
@ -371,7 +371,7 @@
@ thiscall -arch=win32 ??_Eistream_withassign@@UAEPAXI@Z(ptr long) istream_vector_dtor
@ thiscall -arch=win32 ??_Eistrstream@@UAEPAXI@Z(ptr long) istream_vector_dtor
@ thiscall -arch=win32 ??_Elogic_error@@UAEPAXI@Z(ptr long) MSVCP_logic_error_vector_dtor
@ stub -arch=win32 ??_Eofstream@@UAEPAXI@Z # virtual void * __thiscall ofstream::`vector deleting destructor'(unsigned int)
@ thiscall -arch=win32 ??_Eofstream@@UAEPAXI@Z(ptr long) ostream_vector_dtor
@ thiscall -arch=win32 ??_Eostream@@UAEPAXI@Z(ptr long) ostream_vector_dtor
@ thiscall -arch=win32 ??_Eostream_withassign@@UAEPAXI@Z(ptr long) ostream_vector_dtor
@ thiscall -arch=win32 ??_Eostrstream@@UAEPAXI@Z(ptr long) ostream_vector_dtor
@ -390,7 +390,7 @@
@ thiscall -arch=win32 ??_Gistream_withassign@@UAEPAXI@Z(ptr long) istream_scalar_dtor
@ thiscall -arch=win32 ??_Gistrstream@@UAEPAXI@Z(ptr long) istream_scalar_dtor
@ thiscall -arch=win32 ??_Glogic_error@@UAEPAXI@Z(ptr long) MSVCP_logic_error_scalar_dtor
@ stub -arch=win32 ??_Gofstream@@UAEPAXI@Z # virtual void * __thiscall ofstream::`scalar deleting destructor'(unsigned int)
@ thiscall -arch=win32 ??_Gofstream@@UAEPAXI@Z(ptr long) ostream_scalar_dtor
@ thiscall -arch=win32 ??_Gostream@@UAEPAXI@Z(ptr long) ostream_scalar_dtor
@ thiscall -arch=win32 ??_Gostream_withassign@@UAEPAXI@Z(ptr long) ostream_scalar_dtor
@ thiscall -arch=win32 ??_Gostrstream@@UAEPAXI@Z(ptr long) ostream_scalar_dtor
@ -408,8 +408,8 @@
@ stub -arch=win64 ?attach@fstream@@QEAAXH@Z
@ thiscall -arch=win32 ?attach@ifstream@@QAEXH@Z(ptr long) ifstream_attach
@ cdecl -arch=win64 ?attach@ifstream@@QEAAXH@Z(ptr long) ifstream_attach
@ stub -arch=win32 ?attach@ofstream@@QAEXH@Z # void __thiscall ofstream::attach(int)
@ stub -arch=win64 ?attach@ofstream@@QEAAXH@Z
@ thiscall -arch=win32 ?attach@ofstream@@QAEXH@Z(ptr long) ofstream_attach
@ cdecl -arch=win64 ?attach@ofstream@@QEAAXH@Z(ptr long) ofstream_attach
@ thiscall -arch=win32 ?bad@ios@@QBEHXZ(ptr) ios_bad
@ cdecl -arch=win64 ?bad@ios@@QEBAHXZ(ptr) ios_bad
@ thiscall -arch=win32 ?base@streambuf@@IBEPADXZ(ptr) streambuf_base
@ -430,8 +430,8 @@
@ stub -arch=win64 ?close@fstream@@QEAAXXZ
@ thiscall -arch=win32 ?close@ifstream@@QAEXXZ(ptr) ifstream_close
@ cdecl -arch=win64 ?close@ifstream@@QEAAXXZ(ptr) ifstream_close
@ stub -arch=win32 ?close@ofstream@@QAEXXZ # void __thiscall ofstream::close(void)
@ stub -arch=win64 ?close@ofstream@@QEAAXXZ
@ thiscall -arch=win32 ?close@ofstream@@QAEXXZ(ptr) ofstream_close
@ cdecl -arch=win64 ?close@ofstream@@QEAAXXZ(ptr) ofstream_close
@ cdecl -arch=win32 ?clrlock@ios@@QAAXXZ(ptr) ios_clrlock
@ cdecl -arch=win64 ?clrlock@ios@@QEAAXXZ(ptr) ios_clrlock
@ thiscall -arch=win32 ?clrlock@streambuf@@QAEXXZ(ptr) streambuf_clrlock
@ -474,8 +474,8 @@
@ stub -arch=win64 ?fd@fstream@@QEBAHXZ
@ thiscall -arch=win32 ?fd@ifstream@@QBEHXZ(ptr) ifstream_fd
@ cdecl -arch=win64 ?fd@ifstream@@QEBAHXZ(ptr) ifstream_fd
@ stub -arch=win32 ?fd@ofstream@@QBEHXZ # int __thiscall ofstream::fd(void)const
@ stub -arch=win64 ?fd@ofstream@@QEBAHXZ
@ thiscall -arch=win32 ?fd@ofstream@@QBEHXZ(ptr) ofstream_fd
@ cdecl -arch=win64 ?fd@ofstream@@QEBAHXZ(ptr) ofstream_fd
@ thiscall -arch=win32 ?fill@ios@@QAEDD@Z(ptr long) ios_fill_set
@ cdecl -arch=win64 ?fill@ios@@QEAADD@Z(ptr long) ios_fill_set
@ thiscall -arch=win32 ?fill@ios@@QBEDXZ(ptr) ios_fill_get
@ -543,8 +543,8 @@
@ stub -arch=win64 ?is_open@fstream@@QEBAHXZ
@ thiscall -arch=win32 ?is_open@ifstream@@QBEHXZ(ptr) ifstream_is_open
@ cdecl -arch=win64 ?is_open@ifstream@@QEBAHXZ(ptr) ifstream_is_open
@ stub -arch=win32 ?is_open@ofstream@@QBEHXZ # int __thiscall ofstream::is_open(void)const
@ stub -arch=win64 ?is_open@ofstream@@QEBAHXZ
@ thiscall -arch=win32 ?is_open@ofstream@@QBEHXZ(ptr) ofstream_is_open
@ cdecl -arch=win64 ?is_open@ofstream@@QEBAHXZ(ptr) ofstream_is_open
@ thiscall -arch=win32 ?isfx@istream@@QAEXXZ(ptr) istream_isfx
@ cdecl -arch=win64 ?isfx@istream@@QEAAXXZ(ptr) istream_isfx
@ thiscall -arch=win32 ?iword@ios@@QBEAAJH@Z(ptr long) ios_iword
@ -568,8 +568,8 @@
@ stub -arch=win64 ?open@fstream@@QEAAXPEBDHH@Z
@ thiscall -arch=win32 ?open@ifstream@@QAEXPBDHH@Z(ptr str long long) ifstream_open
@ cdecl -arch=win64 ?open@ifstream@@QEAAXPEBDHH@Z(ptr str long long) ifstream_open
@ stub -arch=win32 ?open@ofstream@@QAEXPBDHH@Z # void __thiscall ofstream::open(char const *,int,int)
@ stub -arch=win64 ?open@ofstream@@QEAAXPEBDHH@Z
@ thiscall -arch=win32 ?open@ofstream@@QAEXPBDHH@Z(ptr str long long) ofstream_open
@ cdecl -arch=win64 ?open@ofstream@@QEAAXPEBDHH@Z(ptr str long long) ofstream_open
@ extern ?openprot@filebuf@@2HB filebuf_openprot
@ thiscall -arch=win32 ?opfx@ostream@@QAEHXZ(ptr) ostream_opfx
@ cdecl -arch=win64 ?opfx@ostream@@QEAAHXZ(ptr) ostream_opfx
@ -621,8 +621,8 @@
@ cdecl -arch=win64 ?rdbuf@ios@@QEBAPEAVstreambuf@@XZ(ptr) ios_rdbuf
@ thiscall -arch=win32 ?rdbuf@istrstream@@QBEPAVstrstreambuf@@XZ(ptr) istrstream_rdbuf
@ cdecl -arch=win64 ?rdbuf@istrstream@@QEBAPEAVstrstreambuf@@XZ(ptr) istrstream_rdbuf
@ stub -arch=win32 ?rdbuf@ofstream@@QBEPAVfilebuf@@XZ # class filebuf * __thiscall ofstream::rdbuf(void)const
@ stub -arch=win64 ?rdbuf@ofstream@@QEBAPEAVfilebuf@@XZ
@ thiscall -arch=win32 ?rdbuf@ofstream@@QBEPAVfilebuf@@XZ(ptr) ofstream_rdbuf
@ cdecl -arch=win64 ?rdbuf@ofstream@@QEBAPEAVfilebuf@@XZ(ptr) ofstream_rdbuf
@ thiscall -arch=win32 ?rdbuf@ostrstream@@QBEPAVstrstreambuf@@XZ(ptr) ostrstream_rdbuf
@ cdecl -arch=win64 ?rdbuf@ostrstream@@QEBAPEAVstrstreambuf@@XZ(ptr) ostrstream_rdbuf
@ thiscall -arch=win32 ?rdbuf@stdiostream@@QBEPAVstdiobuf@@XZ(ptr) stdiostream_rdbuf
@ -665,8 +665,8 @@
@ stub -arch=win64 ?setbuf@fstream@@QEAAPEAVstreambuf@@PEADH@Z
@ thiscall -arch=win32 ?setbuf@ifstream@@QAEPAVstreambuf@@PADH@Z(ptr ptr long) ifstream_setbuf
@ cdecl -arch=win64 ?setbuf@ifstream@@QEAAPEAVstreambuf@@PEADH@Z(ptr ptr long) ifstream_setbuf
@ stub -arch=win32 ?setbuf@ofstream@@QAEPAVstreambuf@@PADH@Z # class streambuf * __thiscall ofstream::setbuf(char *,int)
@ stub -arch=win64 ?setbuf@ofstream@@QEAAPEAVstreambuf@@PEADH@Z
@ thiscall -arch=win32 ?setbuf@ofstream@@QAEPAVstreambuf@@PADH@Z(ptr ptr long) ofstream_setbuf
@ cdecl -arch=win64 ?setbuf@ofstream@@QEAAPEAVstreambuf@@PEADH@Z(ptr ptr long) ofstream_setbuf
@ thiscall -arch=win32 ?setbuf@streambuf@@UAEPAV1@PADH@Z(ptr ptr long) streambuf_setbuf
@ cdecl -arch=win64 ?setbuf@streambuf@@UEAAPEAV1@PEADH@Z(ptr ptr long) streambuf_setbuf
@ thiscall -arch=win32 ?setbuf@strstreambuf@@UAEPAVstreambuf@@PADH@Z(ptr ptr long) strstreambuf_setbuf
@ -687,8 +687,8 @@
@ stub -arch=win64 ?setmode@fstream@@QEAAHH@Z
@ thiscall -arch=win32 ?setmode@ifstream@@QAEHH@Z(ptr long) ifstream_setmode
@ cdecl -arch=win64 ?setmode@ifstream@@QEAAHH@Z(ptr long) ifstream_setmode
@ stub -arch=win32 ?setmode@ofstream@@QAEHH@Z # int __thiscall ofstream::setmode(int)
@ stub -arch=win64 ?setmode@ofstream@@QEAAHH@Z
@ thiscall -arch=win32 ?setmode@ofstream@@QAEHH@Z(ptr long) ofstream_setmode
@ cdecl -arch=win64 ?setmode@ofstream@@QEAAHH@Z(ptr long) ofstream_setmode
@ thiscall -arch=win32 ?setp@streambuf@@IAEXPAD0@Z(ptr ptr ptr) streambuf_setp
@ cdecl -arch=win64 ?setp@streambuf@@IEAAXPEAD0@Z(ptr ptr ptr) streambuf_setp
@ thiscall -arch=win32 ?setrwbuf@stdiobuf@@QAEHHH@Z(ptr long long) stdiobuf_setrwbuf

View File

@ -339,6 +339,23 @@ static void (*__thiscall p_ostrstream_vbase_dtor)(ostream*);
static ostream* (*__thiscall p_ostrstream_assign)(ostream*, const ostream*);
static int (*__thiscall p_ostrstream_pcount)(const ostream*);
/* ofstream */
static ostream* (*__thiscall p_ofstream_copy_ctor)(ostream*, const ostream*, BOOL);
static ostream* (*__thiscall p_ofstream_buffer_ctor)(ostream*, filedesc, char*, int, BOOL);
static ostream* (*__thiscall p_ofstream_fd_ctor)(ostream*, filedesc fd, BOOL virt_init);
static ostream* (*__thiscall p_ofstream_open_ctor)(ostream*, const char *name, ios_open_mode, int, BOOL);
static ostream* (*__thiscall p_ofstream_ctor)(ostream*, BOOL);
static void (*__thiscall p_ofstream_dtor)(ios*);
static void (*__thiscall p_ofstream_vbase_dtor)(ostream*);
static void (*__thiscall p_ofstream_attach)(ostream*, filedesc);
static void (*__thiscall p_ofstream_close)(ostream*);
static filedesc (*__thiscall p_ofstream_fd)(ostream*);
static int (*__thiscall p_ofstream_is_open)(const ostream*);
static void (*__thiscall p_ofstream_open)(ostream*, const char*, ios_open_mode, int);
static filebuf* (*__thiscall p_ofstream_rdbuf)(const ostream*);
static streambuf* (*__thiscall p_ofstream_setbuf)(ostream*, char*, int);
static int (*__thiscall p_ofstream_setmode)(ostream*, int);
/* istream */
static istream* (*__thiscall p_istream_copy_ctor)(istream*, const istream*, BOOL);
static istream* (*__thiscall p_istream_ctor)(istream*, BOOL);
@ -670,6 +687,22 @@ static BOOL init(void)
SET(p_ostrstream_assign, "??4ostrstream@@QEAAAEAV0@AEBV0@@Z");
SET(p_ostrstream_pcount, "?pcount@ostrstream@@QEBAHXZ");
SET(p_ofstream_copy_ctor, "??0ofstream@@QEAA@AEBV0@@Z");
SET(p_ofstream_buffer_ctor, "??0ofstream@@QEAA@HPEADH@Z");
SET(p_ofstream_fd_ctor, "??0ofstream@@QEAA@H@Z");
SET(p_ofstream_open_ctor, "??0ofstream@@QEAA@PEBDHH@Z");
SET(p_ofstream_ctor, "??0ofstream@@QEAA@XZ");
SET(p_ofstream_dtor, "??1ofstream@@UEAA@XZ");
SET(p_ofstream_vbase_dtor, "??_Dofstream@@QEAAXXZ");
SET(p_ofstream_attach, "?attach@ofstream@@QEAAXH@Z");
SET(p_ofstream_close, "?close@ofstream@@QEAAXXZ");
SET(p_ofstream_fd, "?fd@ofstream@@QEBAHXZ");
SET(p_ofstream_is_open, "?is_open@ofstream@@QEBAHXZ");
SET(p_ofstream_open, "?open@ofstream@@QEAAXPEBDHH@Z");
SET(p_ofstream_rdbuf, "?rdbuf@ofstream@@QEBAPEAVfilebuf@@XZ");
SET(p_ofstream_setbuf, "?setbuf@ofstream@@QEAAPEAVstreambuf@@PEADH@Z");
SET(p_ofstream_setmode, "?setmode@ofstream@@QEAAHH@Z");
SET(p_istream_copy_ctor, "??0istream@@IEAA@AEBV0@@Z");
SET(p_istream_ctor, "??0istream@@IEAA@XZ");
SET(p_istream_sb_ctor, "??0istream@@QEAA@PEAVstreambuf@@@Z");
@ -905,6 +938,22 @@ static BOOL init(void)
SET(p_ostrstream_assign, "??4ostrstream@@QAEAAV0@ABV0@@Z");
SET(p_ostrstream_pcount, "?pcount@ostrstream@@QBEHXZ");
SET(p_ofstream_copy_ctor, "??0ofstream@@QAE@ABV0@@Z");
SET(p_ofstream_fd_ctor, "??0ofstream@@QAE@H@Z");
SET(p_ofstream_buffer_ctor, "??0ofstream@@QAE@HPADH@Z");
SET(p_ofstream_open_ctor, "??0ofstream@@QAE@PBDHH@Z");
SET(p_ofstream_ctor, "??0ofstream@@QAE@XZ");
SET(p_ofstream_dtor, "??1ofstream@@UAE@XZ");
SET(p_ofstream_vbase_dtor, "??_Dofstream@@QAEXXZ");
SET(p_ofstream_attach, "?attach@ofstream@@QAEXH@Z");
SET(p_ofstream_close, "?close@ofstream@@QAEXXZ");
SET(p_ofstream_fd, "?fd@ofstream@@QBEHXZ");
SET(p_ofstream_is_open, "?is_open@ofstream@@QBEHXZ");
SET(p_ofstream_open, "?open@ofstream@@QAEXPBDHH@Z");
SET(p_ofstream_rdbuf, "?rdbuf@ofstream@@QBEPAVfilebuf@@XZ");
SET(p_ofstream_setbuf, "?setbuf@ofstream@@QAEPAVstreambuf@@PADH@Z");
SET(p_ofstream_setmode, "?setmode@ofstream@@QAEHH@Z");
SET(p_istream_copy_ctor, "??0istream@@IAE@ABV0@@Z");
SET(p_istream_ctor, "??0istream@@IAE@XZ");
SET(p_istream_sb_ctor, "??0istream@@QAE@PAVstreambuf@@@Z");
@ -4498,6 +4547,344 @@ static void test_ostrstream(void)
call_func1(p_ostrstream_vbase_dtor, &os1);
}
static void test_ofstream(void)
{
const char *filename = "ofstream_test";
ostream ofs, ofs_copy, *pofs;
streambuf *psb;
filebuf *pfb;
char buffer[64];
char st[8];
int fd, ret;
memset(&ofs, 0xab, sizeof(ostream));
/* constructors/destructors */
pofs = call_func2(p_ofstream_ctor, &ofs, TRUE);
pfb = (filebuf*) ofs.base_ios.sb;
ok(pofs == &ofs, "wrong return, expected %p got %p\n", &ofs, pofs);
ok(ofs.unknown == 0, "expected 0 got %d\n", ofs.unknown);
ok(ofs.base_ios.sb != NULL, "expected not %p got %p\n", NULL, ofs.base_ios.sb);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
ok(ofs.base_ios.delbuf == 1, "expected 1 got %d\n", ofs.base_ios.delbuf);
ok(ofs.base_ios.tie == NULL, "expected %p got %p\n", NULL, ofs.base_ios.tie);
ok(ofs.base_ios.flags == 0x0, "expected %x got %x\n", 0x0, ofs.base_ios.flags);
ok(ofs.base_ios.precision == 6, "expected 6 got %d\n", ofs.base_ios.precision);
ok(ofs.base_ios.fill == ' ', "expected 32 got %d\n", ofs.base_ios.fill);
ok(ofs.base_ios.width == 0, "expected 0 got %d\n", ofs.base_ios.width);
ok(ofs.base_ios.do_lock == -1, "expected -1 got %d\n", ofs.base_ios.do_lock);
ok(pfb->fd == -1, "wrong fd, expected -1 got %d\n", pfb->fd);
ok(pfb->close == 0, "wrong value, expected 0 got %d\n", pfb->close);
ok(pfb->base.allocated == 0, "wrong allocate value, expected 0 got %d\n", pfb->base.allocated);
ok(pfb->base.unbuffered == 0, "wrong unbuffered value, expected 0 got %d\n", pfb->base.unbuffered);
ok(pfb->base.base == NULL, "wrong buffer, expected %p got %p\n", NULL, pfb->base.base);
ok(pfb->base.ebuf == NULL, "wrong ebuf, expected %p got %p\n", NULL, pfb->base.ebuf);
ok(pfb->fd == -1, "wrong fd, expected 0 got %d\n", pfb->fd);
call_func1(p_ofstream_vbase_dtor, &ofs);
pofs = call_func3(p_ofstream_fd_ctor, &ofs, 42, TRUE);
pfb = (filebuf*) ofs.base_ios.sb;
ok(pofs == &ofs, "wrong return, expected %p got %p\n", &ofs, pofs);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
ok(ofs.base_ios.delbuf == 1, "expected 1 got %d\n", ofs.base_ios.delbuf);
ok(pfb->base.allocated == 0, "wrong allocate value, expected 0 got %d\n", pfb->base.allocated);
ok(pfb->base.unbuffered == 0, "wrong unbuffered value, expected 0 got %d\n", pfb->base.unbuffered);
ok(pfb->base.base == NULL, "wrong buffer, expected %p got %p\n", NULL, pfb->base.base);
ok(pfb->base.ebuf == NULL, "wrong ebuf, expected %p got %p\n", NULL, pfb->base.ebuf);
ok(pfb->fd == 42, "wrong fd, expected 42 got %d\n", pfb->fd);
ok(pfb->close == 0, "wrong value, expected 0 got %d\n", pfb->close);
pofs = call_func3(p_ofstream_copy_ctor, &ofs_copy, &ofs, TRUE);
pfb = (filebuf*) ofs_copy.base_ios.sb;
ok(pofs == &ofs_copy, "wrong return, expected %p got %p\n", &ofs_copy, pofs);
ok(ofs_copy.base_ios.sb == ofs.base_ios.sb, "expected shared streambuf\n");
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
ok(ofs_copy.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs_copy.base_ios.state);
call_func1(p_ofstream_vbase_dtor, &ofs_copy);
call_func1(p_ofstream_dtor, &ofs.base_ios);
pofs = call_func5(p_ofstream_buffer_ctor, &ofs, 53, buffer, ARRAY_SIZE(buffer), TRUE);
pfb = (filebuf*) ofs.base_ios.sb;
ok(ofs.base_ios.delbuf == 1, "expected 1 got %d\n", ofs.base_ios.delbuf);
ok(pofs == &ofs, "wrong return, expected %p got %p\n", &ofs, pofs);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
ok(pfb->base.allocated == 0, "wrong allocate value, expected 0 got %d\n", pfb->base.allocated);
ok(pfb->base.unbuffered == 0, "wrong unbuffered value, expected 0 got %d\n", pfb->base.unbuffered);
ok(pfb->base.base == buffer, "wrong buffer, expected %p got %p\n", buffer, pfb->base.base);
ok(pfb->base.ebuf == buffer + ARRAY_SIZE(buffer), "wrong ebuf, expected %p got %p\n", buffer + ARRAY_SIZE(buffer), pfb->base.ebuf);
ok(pfb->fd == 53, "wrong fd, expected 53 got %d\n", pfb->fd);
ok(pfb->close == 0, "wrong value, expected 0 got %d\n", pfb->close);
call_func1(p_ofstream_dtor, &ofs.base_ios);
pofs = call_func5(p_ofstream_buffer_ctor, &ofs, 64, NULL, 0, TRUE);
pfb = (filebuf*) ofs.base_ios.sb;
ok(ofs.base_ios.delbuf == 1, "expected 1 got %d\n", ofs.base_ios.delbuf);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
ok(pofs == &ofs, "wrong return, expected %p got %p\n", &ofs, pofs);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
ok(pfb->base.allocated == 0, "wrong allocate value, expected 0 got %d\n", pfb->base.allocated);
ok(pfb->base.unbuffered == 1, "wrong unbuffered value, expected 1 got %d\n", pfb->base.unbuffered);
ok(pfb->base.base == NULL, "wrong buffer, expected %p got %p\n", NULL, pfb->base.base);
ok(pfb->base.ebuf == NULL, "wrong ebuf, expected %p got %p\n", NULL, pfb->base.ebuf);
ok(pfb->fd == 64, "wrong fd, expected 64 got %d\n", pfb->fd);
ok(pfb->close == 0, "wrong value, expected 0 got %d\n", pfb->close);
call_func1(p_ofstream_vbase_dtor, &ofs);
pofs = call_func5(p_ofstream_open_ctor, &ofs, filename, OPENMODE_out, filebuf_openprot, TRUE);
pfb = (filebuf*) ofs.base_ios.sb;
ok(ofs.base_ios.delbuf == 1, "expected 1 got %d\n", ofs.base_ios.delbuf);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
ok(pofs == &ofs, "wrong return, expected %p got %p\n", &ofs, pofs);
ok(pfb->base.allocated == 1, "wrong allocate value, expected 1 got %d\n", pfb->base.allocated);
ok(pfb->base.unbuffered == 0, "wrong unbuffered value, expected 0 got %d\n", pfb->base.unbuffered);
ok(pfb->base.base != NULL, "wrong buffer, expected not %p got %p\n", NULL, pfb->base.base);
ok(pfb->base.ebuf != NULL, "wrong ebuf, expected not %p got %p\n", NULL, pfb->base.ebuf);
ok(pfb->fd != -1, "wrong fd, expected not -1 got %d\n", pfb->fd);
fd = pfb->fd;
ok(pfb->close == 1, "wrong value, expected 1 got %d\n", pfb->close);
call_func1(p_ofstream_vbase_dtor, &ofs);
ok(_close(fd) == -1, "expected ofstream to close opened file\n");
ok(_unlink(filename) == 0, "Couldn't unlink file named '%s'\n", filename);
/* setbuf */
call_func5(p_ofstream_buffer_ctor, &ofs, -1, NULL, 0, TRUE);
ok(ofs.base_ios.sb->base == NULL, "wrong base value, expected NULL got %p\n", ofs.base_ios.sb->base);
ok(ofs.base_ios.sb->ebuf == NULL, "wrong ebuf value, expected NULL got %p\n", ofs.base_ios.sb->ebuf);
ok(ofs.base_ios.sb->unbuffered == 1, "wrong unbuffered value, expected 1 got %d\n", pfb->base.unbuffered);
ok(ofs.base_ios.sb->allocated == 0, "wrong allocated value, expected 0 got %d\n", ofs.base_ios.sb->allocated);
psb = call_func3(p_ofstream_setbuf, &ofs, buffer, ARRAY_SIZE(buffer));
ok(psb == ofs.base_ios.sb, "wrong return, expected %p got %p\n", ofs.base_ios.sb, psb);
ok(ofs.base_ios.sb->base == buffer, "wrong buffer, expected %p got %p\n", buffer, ofs.base_ios.sb->base);
ok(ofs.base_ios.sb->ebuf == buffer + ARRAY_SIZE(buffer), "wrong ebuf, expected %p got %p\n", buffer + ARRAY_SIZE(buffer), ofs.base_ios.sb->ebuf);
ok(ofs.base_ios.sb->unbuffered == 1, "wrong unbuffered value, expected 1 got %d\n", ofs.base_ios.sb->unbuffered);
ok(ofs.base_ios.sb->allocated == 0, "wrong allocated value, expected 0 got %d\n", ofs.base_ios.sb->allocated);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
psb = call_func3(p_ofstream_setbuf, &ofs, NULL, 0);
ok(psb == ofs.base_ios.sb, "wrong return, expected %p got %p\n", ofs.base_ios.sb, psb);
ok(ofs.base_ios.sb->base == buffer, "wrong buffer, expected %p got %p\n", buffer, ofs.base_ios.sb->base);
ok(ofs.base_ios.sb->ebuf == buffer + ARRAY_SIZE(buffer), "wrong ebuf, expected %p got %p\n", buffer + ARRAY_SIZE(buffer), ofs.base_ios.sb->ebuf);
ok(ofs.base_ios.sb->unbuffered == 1, "wrong unbuffered value, expected 1 got %d\n", ofs.base_ios.sb->unbuffered);
ok(ofs.base_ios.sb->allocated == 0, "wrong allocated value, expected 0 got %d\n", ofs.base_ios.sb->allocated);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
call_func1(p_ofstream_vbase_dtor, &ofs);
call_func2(p_ofstream_ctor, &ofs, TRUE);
ok(ofs.base_ios.sb->base == NULL, "wrong base value, expected NULL got %p\n", ofs.base_ios.sb->base);
ok(ofs.base_ios.sb->ebuf == NULL, "wrong ebuf value, expected NULL got %p\n", ofs.base_ios.sb->ebuf);
ok(ofs.base_ios.sb->unbuffered == 0, "wrong unbuffered value, expected 0 got %d\n", ofs.base_ios.sb->unbuffered);
ok(ofs.base_ios.sb->allocated == 0, "wrong allocated value, expected 0 got %d\n", ofs.base_ios.sb->allocated);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
psb = call_func3(p_ofstream_setbuf, &ofs, buffer, ARRAY_SIZE(buffer));
ok(psb == ofs.base_ios.sb, "wrong return, expected %p got %p\n", ofs.base_ios.sb, psb);
ok(ofs.base_ios.sb->base == buffer, "wrong buffer, expected %p got %p\n", buffer, ofs.base_ios.sb->base);
ok(ofs.base_ios.sb->ebuf == buffer + ARRAY_SIZE(buffer), "wrong ebuf, expected %p got %p\n", buffer + ARRAY_SIZE(buffer), ofs.base_ios.sb->ebuf);
ok(ofs.base_ios.sb->unbuffered == 0, "wrong unbuffered value, expected 0 got %d\n", ofs.base_ios.sb->unbuffered);
ok(ofs.base_ios.sb->allocated == 0, "wrong allocated value, expected 0 got %d\n", ofs.base_ios.sb->allocated);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
psb = call_func3(p_ofstream_setbuf, &ofs, NULL, 0);
ok(psb == ofs.base_ios.sb, "wrong return, expected %p got %p\n", ofs.base_ios.sb, psb);
ok(ofs.base_ios.sb->base == buffer, "wrong buffer, expected %p got %p\n", buffer, ofs.base_ios.sb->base);
ok(ofs.base_ios.sb->ebuf == buffer + ARRAY_SIZE(buffer), "wrong ebuf, expected %p got %p\n", buffer + ARRAY_SIZE(buffer), ofs.base_ios.sb->ebuf);
ok(ofs.base_ios.sb->unbuffered == 1, "wrong unbuffered value, expected 1 got %d\n", ofs.base_ios.sb->unbuffered);
ok(ofs.base_ios.sb->allocated == 0, "wrong allocated value, expected 0 got %d\n", ofs.base_ios.sb->allocated);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
psb = call_func3(p_ofstream_setbuf, &ofs, buffer + 8, ARRAY_SIZE(buffer) - 8);
ok(psb == ofs.base_ios.sb, "wrong return, expected %p got %p\n", ofs.base_ios.sb, psb);
ok(ofs.base_ios.sb->base == buffer + 8, "wrong buffer, expected %p got %p\n", buffer + 8, ofs.base_ios.sb->base);
ok(ofs.base_ios.sb->ebuf == buffer + ARRAY_SIZE(buffer), "wrong ebuf, expected %p got %p\n", buffer + ARRAY_SIZE(buffer), ofs.base_ios.sb->ebuf);
ok(ofs.base_ios.sb->unbuffered == 1, "wrong unbuffered value, expected 1 got %d\n", ofs.base_ios.sb->unbuffered);
ok(ofs.base_ios.sb->allocated == 0, "wrong allocated value, expected 0 got %d\n", ofs.base_ios.sb->allocated);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
psb = call_func3(p_ofstream_setbuf, &ofs, buffer + 8, 0);
ok(psb == ofs.base_ios.sb, "wrong return, expected %p got %p\n", ofs.base_ios.sb, psb);
ok(ofs.base_ios.sb->base == buffer + 8, "wrong buffer, expected %p got %p\n", buffer + 8, ofs.base_ios.sb->base);
ok(ofs.base_ios.sb->ebuf == buffer + ARRAY_SIZE(buffer), "wrong ebuf, expected %p got %p\n", buffer + ARRAY_SIZE(buffer), ofs.base_ios.sb->ebuf);
ok(ofs.base_ios.sb->unbuffered == 1, "wrong unbuffered value, expected 1 got %d\n", ofs.base_ios.sb->unbuffered);
ok(ofs.base_ios.sb->allocated == 0, "wrong allocated value, expected 0 got %d\n", ofs.base_ios.sb->allocated);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
psb = call_func3(p_ofstream_setbuf, &ofs, buffer + 4, ARRAY_SIZE(buffer) - 4);
ok(psb == ofs.base_ios.sb, "wrong return, expected %p got %p\n", ofs.base_ios.sb, psb);
ok(ofs.base_ios.sb->base == buffer + 4, "wrong buffer, expected %p got %p\n", buffer + 4, ofs.base_ios.sb->base);
ok(ofs.base_ios.sb->ebuf == buffer + ARRAY_SIZE(buffer), "wrong ebuf, expected %p got %p\n", buffer + ARRAY_SIZE(buffer), ofs.base_ios.sb->ebuf);
ok(ofs.base_ios.sb->unbuffered == 1, "wrong unbuffered value, expected 1 got %d\n", ofs.base_ios.sb->unbuffered);
ok(ofs.base_ios.sb->allocated == 0, "wrong allocated value, expected 0 got %d\n", ofs.base_ios.sb->allocated);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
psb = call_func3(p_ofstream_setbuf, &ofs, NULL, 5);
ok(psb == ofs.base_ios.sb, "wrong return, expected %p got %p\n", ofs.base_ios.sb, psb);
ok(ofs.base_ios.sb->base == buffer + 4, "wrong buffer, expected %p got %p\n", buffer + 4, ofs.base_ios.sb->base);
ok(ofs.base_ios.sb->ebuf == buffer + ARRAY_SIZE(buffer), "wrong ebuf, expected %p got %p\n", buffer + ARRAY_SIZE(buffer), ofs.base_ios.sb->ebuf);
ok(ofs.base_ios.sb->unbuffered == 1, "wrong unbuffered value, expected 1 got %d\n", ofs.base_ios.sb->unbuffered);
ok(ofs.base_ios.sb->allocated == 0, "wrong allocated value, expected 0 got %d\n", ofs.base_ios.sb->allocated);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
call_func1(p_ofstream_vbase_dtor, &ofs);
/* setbuf - seems to be a nop and always return NULL in those other cases */
pofs = call_func5(p_ofstream_buffer_ctor, &ofs, 42, NULL, 0, TRUE);
ok(ofs.base_ios.sb->base == NULL, "wrong base value, expected NULL got %p\n", ofs.base_ios.sb->base);
ok(ofs.base_ios.sb->ebuf == NULL, "wrong ebuf value, expected NULL got %p\n", ofs.base_ios.sb->ebuf);
ok(ofs.base_ios.sb->unbuffered == 1, "wrong unbuffered value, expected 1 got %d\n", ofs.base_ios.sb->unbuffered);
ok(ofs.base_ios.sb->allocated == 0, "wrong allocated value, expected 0 got %d\n", ofs.base_ios.sb->allocated);
ofs.base_ios.state = IOSTATE_eofbit;
psb = call_func3(p_ofstream_setbuf, &ofs, buffer, ARRAY_SIZE(buffer));
ok(psb == NULL, "wrong return, expected NULL got %p\n", psb);
ok(ofs.base_ios.sb->base == NULL, "wrong base value, expected NULL got %p\n", ofs.base_ios.sb->base);
ok(ofs.base_ios.sb->ebuf == NULL, "wrong ebuf value, expected NULL got %p\n", ofs.base_ios.sb->ebuf);
ok(ofs.base_ios.sb->unbuffered == 1, "wrong unbuffered value, expected 1 got %d\n", ofs.base_ios.sb->unbuffered);
ok(ofs.base_ios.sb->allocated == 0, "wrong allocated value, expected 0 got %d\n", ofs.base_ios.sb->allocated);
ok(ofs.base_ios.state == (IOSTATE_eofbit | IOSTATE_failbit), "attaching on already setup stream did not set failbit\n");
ofs.base_ios.state = IOSTATE_eofbit;
psb = call_func3(p_ofstream_setbuf, &ofs, NULL, 0);
ok(psb == NULL, "wrong return, expected NULL got %p\n", psb);
ok(ofs.base_ios.sb->base == NULL, "wrong base value, expected NULL got %p\n", ofs.base_ios.sb->base);
ok(ofs.base_ios.sb->ebuf == NULL, "wrong ebuf value, expected NULL got %p\n", ofs.base_ios.sb->ebuf);
ok(ofs.base_ios.sb->unbuffered == 1, "wrong unbuffered value, expected 1 got %d\n", ofs.base_ios.sb->unbuffered);
ok(ofs.base_ios.sb->allocated == 0, "wrong allocated value, expected 0 got %d\n", ofs.base_ios.sb->allocated);
ok(ofs.base_ios.state == (IOSTATE_eofbit | IOSTATE_failbit), "attaching on already setup stream did not set failbit\n");
call_func1(p_ofstream_vbase_dtor, &ofs);
pofs = call_func5(p_ofstream_open_ctor, &ofs, filename, OPENMODE_out, filebuf_openprot, TRUE);
ofs.base_ios.state = IOSTATE_eofbit;
psb = call_func3(p_ofstream_setbuf, &ofs, NULL, 0);
ok(psb == NULL, "wrong return, expected NULL got %p\n", psb);
ok(ofs.base_ios.sb->base != NULL, "wrong base value, expected NULL got %p\n", ofs.base_ios.sb->base);
ok(ofs.base_ios.sb->ebuf != NULL, "wrong ebuf value, expected NULL got %p\n", ofs.base_ios.sb->ebuf);
ok(ofs.base_ios.sb->unbuffered == 0, "wrong unbuffered value, expected 0 got %d\n", ofs.base_ios.sb->unbuffered);
ok(ofs.base_ios.sb->allocated == 1, "wrong allocated value, expected 1 got %d\n", ofs.base_ios.sb->allocated);
ok(ofs.base_ios.state == (IOSTATE_eofbit | IOSTATE_failbit), "attaching on already setup stream did not set failbit\n");
ofs.base_ios.state = IOSTATE_eofbit;
psb = call_func3(p_ofstream_setbuf, &ofs, buffer, ARRAY_SIZE(buffer));
ok(psb == NULL, "wrong return, expected NULL got %p\n", psb);
ok(ofs.base_ios.sb->base != NULL, "wrong base value, expected NULL got %p\n", ofs.base_ios.sb->base);
ok(ofs.base_ios.sb->base != buffer, "wrong base value, expected not %p got %p\n", buffer, ofs.base_ios.sb->base);
ok(ofs.base_ios.sb->unbuffered == 0, "wrong unbuffered value, expected 0 got %d\n", ofs.base_ios.sb->unbuffered);
ok(ofs.base_ios.sb->allocated == 1, "wrong allocated value, expected 1 got %d\n", ofs.base_ios.sb->allocated);
ok(ofs.base_ios.state == (IOSTATE_eofbit | IOSTATE_failbit), "attaching on already setup stream did not set failbit\n");
call_func1(p_ofstream_vbase_dtor, &ofs);
ok(_unlink(filename) == 0, "Couldn't unlink file named '%s'\n", filename);
/* attach */
pofs = call_func2(p_ofstream_ctor, &ofs, TRUE);
pfb = (filebuf*) ofs.base_ios.sb;
ok(pofs == &ofs, "wrong return, expected %p got %p\n", &ofs, pofs);
call_func2(p_ofstream_attach, &ofs, 42);
ok(ofs.base_ios.state == IOSTATE_goodbit, "attaching on vanilla stream set some state bits\n");
fd = (int) call_func1(p_ofstream_fd, &ofs);
ok(fd == 42, "wrong fd, expected 42 got %d\n", fd);
ok(pfb->close == 0, "wrong close value, expected 0 got %d\n", pfb->close);
ofs.base_ios.state = IOSTATE_eofbit;
call_func2(p_ofstream_attach, &ofs, 53);
ok(ofs.base_ios.state == (IOSTATE_eofbit | IOSTATE_failbit), "attaching on already setup stream did not set failbit\n");
ok(fd == 42, "wrong fd, expected 42 got %d\n", fd);
call_func1(p_ofstream_vbase_dtor, &ofs);
/* fd */
pofs = call_func2(p_ofstream_ctor, &ofs, TRUE);
pfb = (filebuf*) ofs.base_ios.sb;
ok(pofs == &ofs, "wrong return, expected %p got %p\n", &ofs, pofs);
fd = (int) call_func1(p_ofstream_fd, &ofs);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
ok(fd == -1, "wrong fd, expected -1 but got %d\n", fd);
call_func1(p_ofstream_vbase_dtor, &ofs);
pofs = call_func5(p_ofstream_open_ctor, &ofs, filename, OPENMODE_out, filebuf_openprot, TRUE);
pfb = (filebuf*) ofs.base_ios.sb;
ok(pofs == &ofs, "wrong return, expected %p got %p\n", &ofs, pofs);
fd = (int) call_func1(p_ofstream_fd, &ofs);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
ok(fd == pfb->fd, "wrong fd, expected %d but got %d\n", pfb->fd, fd);
/* rdbuf */
pfb = (filebuf*) call_func1(p_ofstream_rdbuf, &ofs);
ok((streambuf*) pfb == ofs.base_ios.sb, "wrong return, expected %p got %p\n", ofs.base_ios.sb, pfb);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
/* setmode */
ret = (int) call_func2(p_ofstream_setmode, &ofs, filebuf_binary);
ok(ret == filebuf_text, "wrong return, expected %d got %d\n", filebuf_text, ret);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
ret = (int) call_func2(p_ofstream_setmode, &ofs, filebuf_binary);
ok(ret == filebuf_binary, "wrong return, expected %d got %d\n", filebuf_binary, ret);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
ret = (int) call_func2(p_ofstream_setmode, &ofs, filebuf_text);
ok(ret == filebuf_binary, "wrong return, expected %d got %d\n", filebuf_binary, ret);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
ret = (int) call_func2(p_ofstream_setmode, &ofs, 0x9000);
ok(ret == -1, "wrong return, expected -1 got %d\n", ret);
ok(ofs.base_ios.state == IOSTATE_goodbit, "expected %d got %d\n", IOSTATE_goodbit, ofs.base_ios.state);
/* close && is_open */
ok((int) call_func1(p_ofstream_is_open, &ofs) == 1, "expected ofstream to be open\n");
ofs.base_ios.state = IOSTATE_eofbit | IOSTATE_failbit;
call_func1(p_ofstream_close, &ofs);
ok(ofs.base_ios.state == IOSTATE_goodbit, "close did not clear state = %d\n", ofs.base_ios.state);
ofs.base_ios.state = IOSTATE_eofbit;
call_func1(p_ofstream_close, &ofs);
ok(ofs.base_ios.state == (IOSTATE_eofbit | IOSTATE_failbit), "close on a closed stream did not set failbit\n");
ok((int) call_func1(p_ofstream_is_open, &ofs) == 0, "expected ofstream to not be open\n");
ok(_close(fd) == -1, "expected close to close the opened file\n");
/* open */
ofs.base_ios.state = IOSTATE_eofbit;
call_func4(p_ofstream_open, &ofs, filename, OPENMODE_out, filebuf_openprot);
fd = (int) call_func1(p_ofstream_fd, &ofs);
ok(fd != -1, "wrong fd, expected not -1 got %d\n", fd);
ok(ofs.base_ios.state == IOSTATE_eofbit, "open did not succeed\n");
call_func4(p_ofstream_open, &ofs, filename, OPENMODE_out, filebuf_openprot);
ok(ofs.base_ios.state == (IOSTATE_eofbit | IOSTATE_failbit), "second open did not set failbit\n");
call_func1(p_ofstream_close, &ofs);
/* integration with parent ostream - writing */
ofs.base_ios.state = IOSTATE_goodbit; /* open doesn't clear the state */
call_func4(p_ofstream_open, &ofs, filename, OPENMODE_in, filebuf_openprot); /* make sure that OPENMODE_out is implicit */
pofs = call_func2(p_ostream_print_str, &ofs, "test ");
ok(pofs == &ofs, "stream operation returned wrong pointer, expected %p got %p\n", &ofs, pofs);
pofs = call_func2(p_ostream_print_int, &ofs, 12);
ok(pofs == &ofs, "stream operation returned wrong pointer, expected %p got %p\n", &ofs, pofs);
call_func1(p_ofstream_close, &ofs);
/* read what we wrote */
memset(st, 'A', sizeof(st));
st[7] = 0;
fd = _open(filename, _O_RDONLY, _S_IREAD);
ok(fd != -1, "_open failed\n");
ok(_read(fd, st, 7) == 7, "_read failed\n");
ok(_close(fd) == 0, "_close failed\n");
ok(!strcmp(st, "test 12"), "expected 'test 12' got '%s'\n", st);
call_func1(p_ofstream_vbase_dtor, &ofs);
ok(_unlink(filename) == 0, "Couldn't unlink file named '%s'\n", filename);
/* make sure that OPENMODE_out is implicit with open_ctor */
pofs = call_func5(p_ofstream_open_ctor, &ofs, filename, OPENMODE_in, filebuf_openprot, TRUE);
ok(pofs == &ofs, "wrong return, expected %p got %p\n", &ofs, pofs);
pofs = call_func2(p_ostream_print_str, &ofs, "test ");
ok(pofs == &ofs, "stream operation returned wrong pointer, expected %p got %p\n", &ofs, pofs);
pofs = call_func2(p_ostream_print_int, &ofs, 12);
ok(pofs == &ofs, "stream operation returned wrong pointer, expected %p got %p\n", &ofs, pofs);
call_func1(p_ofstream_close, &ofs);
memset(st, 'A', sizeof(st));
st[7] = 0;
fd = _open(filename, _O_RDONLY, _S_IREAD);
ok(fd != -1, "_open failed\n");
ok(_read(fd, st, 7) == 7, "_read failed\n");
ok(_close(fd) == 0, "_close failed\n");
ok(!strcmp(st, "test 12"), "expected 'test 12' got '%s'\n", st);
call_func1(p_ofstream_vbase_dtor, &ofs);
ok(_unlink(filename) == 0, "Couldn't unlink file named '%s'\n", filename);
}
static void test_istream(void)
{
istream is1, is2, *pis;
@ -8092,6 +8479,7 @@ START_TEST(msvcirt)
test_ostream_print();
test_ostream_withassign();
test_ostrstream();
test_ofstream();
test_istream();
test_istream_getint();
test_istream_getdouble();

View File

@ -60,16 +60,16 @@
@ cdecl -arch=win64 ??0istrstream@@QEAA@PEAD@Z(ptr ptr long) msvcirt.??0istrstream@@QEAA@PEAD@Z
@ thiscall -arch=win32 ??0istrstream@@QAE@PADH@Z(ptr ptr long long) msvcirt.??0istrstream@@QAE@PADH@Z
@ cdecl -arch=win64 ??0istrstream@@QEAA@PEADH@Z(ptr ptr long long) msvcirt.??0istrstream@@QEAA@PEADH@Z
@ stub -arch=win32 ??0ofstream@@QAE@ABV0@@Z
@ stub -arch=win64 ??0ofstream@@QEAA@AEBV0@@Z
@ stub -arch=win32 ??0ofstream@@QAE@H@Z
@ stub -arch=win64 ??0ofstream@@QEAA@H@Z
@ stub -arch=win32 ??0ofstream@@QAE@HPADH@Z
@ stub -arch=win64 ??0ofstream@@QEAA@HPEADH@Z
@ stub -arch=win32 ??0ofstream@@QAE@PBDHH@Z
@ stub -arch=win64 ??0ofstream@@QEAA@PEBDHH@Z
@ stub -arch=win32 ??0ofstream@@QAE@XZ
@ stub -arch=win64 ??0ofstream@@QEAA@XZ
@ thiscall -arch=win32 ??0ofstream@@QAE@ABV0@@Z(ptr ptr long) msvcirt.??0ofstream@@QAE@ABV0@@Z
@ cdecl -arch=win64 ??0ofstream@@QEAA@AEBV0@@Z(ptr ptr long) msvcirt.??0ofstream@@QEAA@AEBV0@@Z
@ thiscall -arch=win32 ??0ofstream@@QAE@H@Z(ptr long long) msvcirt.??0ofstream@@QAE@H@Z
@ cdecl -arch=win64 ??0ofstream@@QEAA@H@Z(ptr long long) msvcirt.??0ofstream@@QEAA@H@Z
@ thiscall -arch=win32 ??0ofstream@@QAE@HPADH@Z(ptr long ptr long long) msvcirt.??0ofstream@@QAE@HPADH@Z
@ cdecl -arch=win64 ??0ofstream@@QEAA@HPEADH@Z(ptr long ptr long long) msvcirt.??0ofstream@@QEAA@HPEADH@Z
@ thiscall -arch=win32 ??0ofstream@@QAE@PBDHH@Z(ptr str long long long) msvcirt.??0ofstream@@QAE@PBDHH@Z
@ cdecl -arch=win64 ??0ofstream@@QEAA@PEBDHH@Z(ptr str long long long) msvcirt.??0ofstream@@QEAA@PEBDHH@Z
@ thiscall -arch=win32 ??0ofstream@@QAE@XZ(ptr long) msvcirt.??0ofstream@@QAE@XZ
@ cdecl -arch=win64 ??0ofstream@@QEAA@XZ(ptr long) msvcirt.??0ofstream@@QEAA@XZ
@ thiscall -arch=win32 ??0ostream@@IAE@ABV0@@Z(ptr ptr long) msvcirt.??0ostream@@IAE@ABV0@@Z
@ cdecl -arch=win64 ??0ostream@@IEAA@AEBV0@@Z(ptr ptr long) msvcirt.??0ostream@@IEAA@AEBV0@@Z
@ thiscall -arch=win32 ??0ostream@@IAE@XZ(ptr long) msvcirt.??0ostream@@IAE@XZ
@ -136,8 +136,8 @@
@ cdecl -arch=win64 ??1istream_withassign@@UEAA@XZ(ptr) msvcirt.??1istream_withassign@@UEAA@XZ
@ thiscall -arch=win32 ??1istrstream@@UAE@XZ(ptr) msvcirt.??1istrstream@@UAE@XZ
@ cdecl -arch=win64 ??1istrstream@@UEAA@XZ(ptr) msvcirt.??1istrstream@@UEAA@XZ
@ stub -arch=win32 ??1ofstream@@UAE@XZ
@ stub -arch=win64 ??1ofstream@@UEAA@XZ
@ thiscall -arch=win32 ??1ofstream@@UAE@XZ(ptr) msvcirt.??1ofstream@@UAE@XZ
@ cdecl -arch=win64 ??1ofstream@@UEAA@XZ(ptr) msvcirt.??1ofstream@@UEAA@XZ
@ thiscall -arch=win32 ??1ostream@@UAE@XZ(ptr) msvcirt.??1ostream@@UAE@XZ
@ cdecl -arch=win64 ??1ostream@@UEAA@XZ(ptr) msvcirt.??1ostream@@UEAA@XZ
@ thiscall -arch=win32 ??1ostream_withassign@@UAE@XZ(ptr) msvcirt.??1ostream_withassign@@UAE@XZ
@ -184,8 +184,8 @@
@ cdecl -arch=win64 ??4istream_withassign@@QEAAAEAVistream@@PEAVstreambuf@@@Z(ptr ptr) msvcirt.??4istream_withassign@@QEAAAEAVistream@@PEAVstreambuf@@@Z
@ thiscall -arch=win32 ??4istrstream@@QAEAAV0@ABV0@@Z(ptr ptr) msvcirt.??4istrstream@@QAEAAV0@ABV0@@Z
@ cdecl -arch=win64 ??4istrstream@@QEAAAEAV0@AEBV0@@Z(ptr ptr) msvcirt.??4istrstream@@QEAAAEAV0@AEBV0@@Z
@ stub -arch=win32 ??4ofstream@@QAEAAV0@ABV0@@Z
@ stub -arch=win64 ??4ofstream@@QEAAAEAV0@AEBV0@@Z
@ thiscall -arch=win32 ??4ofstream@@QAEAAV0@ABV0@@Z(ptr ptr) msvcirt.??4ofstream@@QAEAAV0@ABV0@@Z
@ cdecl -arch=win64 ??4ofstream@@QEAAAEAV0@AEBV0@@Z(ptr ptr) msvcirt.??4ofstream@@QEAAAEAV0@AEBV0@@Z
@ thiscall -arch=win32 ??4ostream@@IAEAAV0@ABV0@@Z(ptr ptr) msvcirt.??4ostream@@IAEAAV0@ABV0@@Z
@ cdecl -arch=win64 ??4ostream@@IEAAAEAV0@AEBV0@@Z(ptr ptr) msvcirt.??4ostream@@IEAAAEAV0@AEBV0@@Z
@ thiscall -arch=win32 ??4ostream@@IAEAAV0@PAVstreambuf@@@Z(ptr ptr) msvcirt.??4ostream@@IAEAAV0@PAVstreambuf@@@Z
@ -294,7 +294,7 @@
@ extern ??_7istream@@6B@ msvcirt.??_7istream@@6B@
@ extern ??_7istream_withassign@@6B@ msvcirt.??_7istream_withassign@@6B@
@ extern ??_7istrstream@@6B@ msvcirt.??_7istrstream@@6B@
# @ extern ??_7ofstream@@6B@
@ extern ??_7ofstream@@6B@ msvcirt.??_7ofstream@@6B@
@ extern ??_7ostream@@6B@ msvcirt.??_7ostream@@6B@
@ extern ??_7ostream_withassign@@6B@ msvcirt.??_7ostream_withassign@@6B@
@ extern ??_7ostrstream@@6B@ msvcirt.??_7ostrstream@@6B@
@ -311,7 +311,7 @@
@ extern ??_8istream@@7B@ msvcirt.??_8istream@@7B@
@ extern ??_8istream_withassign@@7B@ msvcirt.??_8istream_withassign@@7B@
@ extern ??_8istrstream@@7B@ msvcirt.??_8istrstream@@7B@
# @ extern ??_8ofstream@@7B@
@ extern ??_8ofstream@@7B@ msvcirt.??_8ofstream@@7B@
@ extern ??_8ostream@@7B@ msvcirt.??_8ostream@@7B@
@ extern ??_8ostream_withassign@@7B@ msvcirt.??_8ostream_withassign@@7B@
@ extern ??_8ostrstream@@7B@ msvcirt.??_8ostrstream@@7B@
@ -331,8 +331,8 @@
@ cdecl -arch=win64 ??_Distream_withassign@@QEAAXXZ(ptr) msvcirt.??_Distream_withassign@@QEAAXXZ
@ thiscall -arch=win32 ??_Distrstream@@QAEXXZ(ptr) msvcirt.??_Distrstream@@QAEXXZ
@ cdecl -arch=win64 ??_Distrstream@@QEAAXXZ(ptr) msvcirt.??_Distrstream@@QEAAXXZ
@ stub -arch=win32 ??_Dofstream@@QAEXXZ
@ stub -arch=win64 ??_Dofstream@@QEAAXXZ
@ thiscall -arch=win32 ??_Dofstream@@QAEXXZ(ptr) msvcirt.??_Dofstream@@QAEXXZ
@ cdecl -arch=win64 ??_Dofstream@@QEAAXXZ(ptr) msvcirt.??_Dofstream@@QEAAXXZ
@ thiscall -arch=win32 ??_Dostream@@QAEXXZ(ptr) msvcirt.??_Dostream@@QAEXXZ
@ cdecl -arch=win64 ??_Dostream@@QEAAXXZ(ptr) msvcirt.??_Dostream@@QEAAXXZ
@ thiscall -arch=win32 ??_Dostream_withassign@@QAEXXZ(ptr) msvcirt.??_Dostream_withassign@@QAEXXZ
@ -352,7 +352,7 @@
@ thiscall -arch=win32 ??_Eistream@@UAEPAXI@Z(ptr long) msvcirt.??_Eistream@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Eistream_withassign@@UAEPAXI@Z(ptr long) msvcirt.??_Eistream_withassign@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Eistrstream@@UAEPAXI@Z(ptr long) msvcirt.??_Eistrstream@@UAEPAXI@Z
@ stub -arch=win32 ??_Eofstream@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Eofstream@@UAEPAXI@Z(ptr long) msvcirt.??_Eofstream@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Eostream@@UAEPAXI@Z(ptr long) msvcirt.??_Eostream@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Eostream_withassign@@UAEPAXI@Z(ptr long) msvcirt.??_Eostream_withassign@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Eostrstream@@UAEPAXI@Z(ptr long) msvcirt.??_Eostrstream@@UAEPAXI@Z
@ -370,7 +370,7 @@
@ thiscall -arch=win32 ??_Gistream@@UAEPAXI@Z(ptr long) msvcirt.??_Gistream@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Gistream_withassign@@UAEPAXI@Z(ptr long) msvcirt.??_Gistream_withassign@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Gistrstream@@UAEPAXI@Z(ptr long) msvcirt.??_Gistrstream@@UAEPAXI@Z
@ stub -arch=win32 ??_Gofstream@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Gofstream@@UAEPAXI@Z(ptr long) msvcirt.??_Gofstream@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Gostream@@UAEPAXI@Z(ptr long) msvcirt.??_Gostream@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Gostream_withassign@@UAEPAXI@Z(ptr long) msvcirt.??_Gostream_withassign@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Gostrstream@@UAEPAXI@Z(ptr long) msvcirt.??_Gostrstream@@UAEPAXI@Z
@ -396,8 +396,8 @@
@ stub -arch=win64 ?attach@fstream@@QEAAXH@Z
@ thiscall -arch=win32 ?attach@ifstream@@QAEXH@Z(ptr long) msvcirt.?attach@ifstream@@QAEXH@Z
@ cdecl -arch=win64 ?attach@ifstream@@QEAAXH@Z(ptr long) msvcirt.?attach@ifstream@@QEAAXH@Z
@ stub -arch=win32 ?attach@ofstream@@QAEXH@Z
@ stub -arch=win64 ?attach@ofstream@@QEAAXH@Z
@ thiscall -arch=win32 ?attach@ofstream@@QAEXH@Z(ptr long) msvcirt.?attach@ofstream@@QAEXH@Z
@ cdecl -arch=win64 ?attach@ofstream@@QEAAXH@Z(ptr long) msvcirt.?attach@ofstream@@QEAAXH@Z
@ thiscall -arch=win32 ?bad@ios@@QBEHXZ(ptr) msvcirt.?bad@ios@@QBEHXZ
@ cdecl -arch=win64 ?bad@ios@@QEBAHXZ(ptr) msvcirt.?bad@ios@@QEBAHXZ
@ thiscall -arch=win32 ?base@streambuf@@IBEPADXZ(ptr) msvcirt.?base@streambuf@@IBEPADXZ
@ -418,8 +418,8 @@
@ stub -arch=win64 ?close@fstream@@QEAAXXZ
@ thiscall -arch=win32 ?close@ifstream@@QAEXXZ(ptr) msvcirt.?close@ifstream@@QAEXXZ
@ cdecl -arch=win64 ?close@ifstream@@QEAAXXZ(ptr) msvcirt.?close@ifstream@@QEAAXXZ
@ stub -arch=win32 ?close@ofstream@@QAEXXZ
@ stub -arch=win64 ?close@ofstream@@QEAAXXZ
@ thiscall -arch=win32 ?close@ofstream@@QAEXXZ(ptr) msvcirt.?close@ofstream@@QAEXXZ
@ cdecl -arch=win64 ?close@ofstream@@QEAAXXZ(ptr) msvcirt.?close@ofstream@@QEAAXXZ
@ cdecl -arch=win32 ?clrlock@ios@@QAAXXZ(ptr) msvcirt.?clrlock@ios@@QAAXXZ
@ cdecl -arch=win64 ?clrlock@ios@@QEAAXXZ(ptr) msvcirt.?clrlock@ios@@QEAAXXZ
@ thiscall -arch=win32 ?clrlock@streambuf@@QAEXXZ(ptr) msvcirt.?clrlock@streambuf@@QAEXXZ
@ -462,8 +462,8 @@
@ stub -arch=win64 ?fd@fstream@@QEBAHXZ
@ thiscall -arch=win32 ?fd@ifstream@@QBEHXZ(ptr) msvcirt.?fd@ifstream@@QBEHXZ
@ cdecl -arch=win64 ?fd@ifstream@@QEBAHXZ(ptr) msvcirt.?fd@ifstream@@QEBAHXZ
@ stub -arch=win32 ?fd@ofstream@@QBEHXZ
@ stub -arch=win64 ?fd@ofstream@@QEBAHXZ
@ thiscall -arch=win32 ?fd@ofstream@@QBEHXZ(ptr) msvcirt.?fd@ofstream@@QBEHXZ
@ cdecl -arch=win64 ?fd@ofstream@@QEBAHXZ(ptr) msvcirt.?fd@ofstream@@QEBAHXZ
@ thiscall -arch=win32 ?fill@ios@@QAEDD@Z(ptr long) msvcirt.?fill@ios@@QAEDD@Z
@ cdecl -arch=win64 ?fill@ios@@QEAADD@Z(ptr long) msvcirt.?fill@ios@@QEAADD@Z
@ thiscall -arch=win32 ?fill@ios@@QBEDXZ(ptr) msvcirt.?fill@ios@@QBEDXZ
@ -529,8 +529,8 @@
@ stub -arch=win64 ?is_open@fstream@@QEBAHXZ
@ thiscall -arch=win32 ?is_open@ifstream@@QBEHXZ(ptr) msvcirt.?is_open@ifstream@@QBEHXZ
@ cdecl -arch=win64 ?is_open@ifstream@@QEBAHXZ(ptr) msvcirt.?is_open@ifstream@@QEBAHXZ
@ stub -arch=win32 ?is_open@ofstream@@QBEHXZ
@ stub -arch=win64 ?is_open@ofstream@@QEBAHXZ
@ thiscall -arch=win32 ?is_open@ofstream@@QBEHXZ(ptr) msvcirt.?is_open@ofstream@@QBEHXZ
@ cdecl -arch=win64 ?is_open@ofstream@@QEBAHXZ(ptr) msvcirt.?is_open@ofstream@@QEBAHXZ
@ thiscall -arch=win32 ?isfx@istream@@QAEXXZ(ptr) msvcirt.?isfx@istream@@QAEXXZ
@ cdecl -arch=win64 ?isfx@istream@@QEAAXXZ(ptr) msvcirt.?isfx@istream@@QEAAXXZ
@ thiscall -arch=win32 ?iword@ios@@QBEAAJH@Z(ptr long) msvcirt.?iword@ios@@QBEAAJH@Z
@ -554,8 +554,8 @@
@ stub -arch=win64 ?open@fstream@@QEAAXPEBDHH@Z
@ thiscall -arch=win32 ?open@ifstream@@QAEXPBDHH@Z(ptr str long long) msvcirt.?open@ifstream@@QAEXPBDHH@Z
@ cdecl -arch=win64 ?open@ifstream@@QEAAXPEBDHH@Z(ptr str long long) msvcirt.?open@ifstream@@QEAAXPEBDHH@Z
@ stub -arch=win32 ?open@ofstream@@QAEXPBDHH@Z
@ stub -arch=win64 ?open@ofstream@@QEAAXPEBDHH@Z
@ thiscall -arch=win32 ?open@ofstream@@QAEXPBDHH@Z(ptr str long long) msvcirt.?open@ofstream@@QAEXPBDHH@Z
@ cdecl -arch=win64 ?open@ofstream@@QEAAXPEBDHH@Z(ptr str long long) msvcirt.?open@ofstream@@QEAAXPEBDHH@Z
@ extern ?openprot@filebuf@@2HB msvcirt.?openprot@filebuf@@2HB
@ thiscall -arch=win32 ?opfx@ostream@@QAEHXZ(ptr) msvcirt.?opfx@ostream@@QAEHXZ
@ cdecl -arch=win64 ?opfx@ostream@@QEAAHXZ(ptr) msvcirt.?opfx@ostream@@QEAAHXZ
@ -607,8 +607,8 @@
@ cdecl -arch=win64 ?rdbuf@ios@@QEBAPEAVstreambuf@@XZ(ptr) msvcirt.?rdbuf@ios@@QEBAPEAVstreambuf@@XZ
@ thiscall -arch=win32 ?rdbuf@istrstream@@QBEPAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf@istrstream@@QBEPAVstrstreambuf@@XZ
@ cdecl -arch=win64 ?rdbuf@istrstream@@QEBAPEAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf@istrstream@@QEBAPEAVstrstreambuf@@XZ
@ stub -arch=win32 ?rdbuf@ofstream@@QBEPAVfilebuf@@XZ
@ stub -arch=win64 ?rdbuf@ofstream@@QEBAPEAVfilebuf@@XZ
@ thiscall -arch=win32 ?rdbuf@ofstream@@QBEPAVfilebuf@@XZ(ptr) msvcirt.?rdbuf@ofstream@@QBEPAVfilebuf@@XZ
@ cdecl -arch=win64 ?rdbuf@ofstream@@QEBAPEAVfilebuf@@XZ(ptr) msvcirt.?rdbuf@ofstream@@QEBAPEAVfilebuf@@XZ
@ thiscall -arch=win32 ?rdbuf@ostrstream@@QBEPAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf@ostrstream@@QBEPAVstrstreambuf@@XZ
@ cdecl -arch=win64 ?rdbuf@ostrstream@@QEBAPEAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf@ostrstream@@QEBAPEAVstrstreambuf@@XZ
@ thiscall -arch=win32 ?rdbuf@stdiostream@@QBEPAVstdiobuf@@XZ(ptr) msvcirt.?rdbuf@stdiostream@@QBEPAVstdiobuf@@XZ
@ -653,8 +653,8 @@
@ stub -arch=win64 ?setbuf@fstream@@QEAAPEAVstreambuf@@PEADH@Z
@ thiscall -arch=win32 ?setbuf@ifstream@@QAEPAVstreambuf@@PADH@Z(ptr ptr long) msvcirt.?setbuf@ifstream@@QAEPAVstreambuf@@PADH@Z
@ cdecl -arch=win64 ?setbuf@ifstream@@QEAAPEAVstreambuf@@PEADH@Z(ptr ptr long) msvcirt.?setbuf@ifstream@@QEAAPEAVstreambuf@@PEADH@Z
@ stub -arch=win32 ?setbuf@ofstream@@QAEPAVstreambuf@@PADH@Z
@ stub -arch=win64 ?setbuf@ofstream@@QEAAPEAVstreambuf@@PEADH@Z
@ thiscall -arch=win32 ?setbuf@ofstream@@QAEPAVstreambuf@@PADH@Z(ptr ptr long) msvcirt.?setbuf@ofstream@@QAEPAVstreambuf@@PADH@Z
@ cdecl -arch=win64 ?setbuf@ofstream@@QEAAPEAVstreambuf@@PEADH@Z(ptr ptr long) msvcirt.?setbuf@ofstream@@QEAAPEAVstreambuf@@PEADH@Z
@ thiscall -arch=win32 ?setbuf@streambuf@@UAEPAV1@PADH@Z(ptr ptr long) msvcirt.?setbuf@streambuf@@UAEPAV1@PADH@Z
@ cdecl -arch=win64 ?setbuf@streambuf@@UEAAPEAV1@PEADH@Z(ptr ptr long) msvcirt.?setbuf@streambuf@@UEAAPEAV1@PEADH@Z
@ thiscall -arch=win32 ?setbuf@strstreambuf@@UAEPAVstreambuf@@PADH@Z(ptr ptr long) msvcirt.?setbuf@strstreambuf@@UAEPAVstreambuf@@PADH@Z
@ -675,8 +675,8 @@
@ stub -arch=win64 ?setmode@fstream@@QEAAHH@Z
@ thiscall -arch=win32 ?setmode@ifstream@@QAEHH@Z(ptr long) msvcirt.?setmode@ifstream@@QAEHH@Z
@ cdecl -arch=win64 ?setmode@ifstream@@QEAAHH@Z(ptr long) msvcirt.?setmode@ifstream@@QEAAHH@Z
@ stub -arch=win32 ?setmode@ofstream@@QAEHH@Z
@ stub -arch=win64 ?setmode@ofstream@@QEAAHH@Z
@ thiscall -arch=win32 ?setmode@ofstream@@QAEHH@Z(ptr long) msvcirt.?setmode@ofstream@@QAEHH@Z
@ cdecl -arch=win64 ?setmode@ofstream@@QEAAHH@Z(ptr long) msvcirt.?setmode@ofstream@@QEAAHH@Z
@ thiscall -arch=win32 ?setp@streambuf@@IAEXPAD0@Z(ptr ptr ptr) msvcirt.?setp@streambuf@@IAEXPAD0@Z
@ cdecl -arch=win64 ?setp@streambuf@@IEAAXPEAD0@Z(ptr ptr ptr) msvcirt.?setp@streambuf@@IEAAXPEAD0@Z
@ thiscall -arch=win32 ?setrwbuf@stdiobuf@@QAEHHH@Z(ptr long long) msvcirt.?setrwbuf@stdiobuf@@QAEHHH@Z

View File

@ -82,16 +82,16 @@
@ cdecl -arch=win64 ??0logic_error@@QEAA@AEBQEBD@Z(ptr ptr) msvcirt.??0logic_error@@QEAA@AEBQEBD@Z
@ thiscall -arch=win32 ??0logic_error@@QAE@ABV0@@Z(ptr ptr) msvcirt.??0logic_error@@QAE@ABV0@@Z
@ cdecl -arch=win64 ??0logic_error@@QEAA@AEBV0@@Z(ptr ptr) msvcirt.??0logic_error@@QEAA@AEBV0@@Z
@ stub -arch=win32 ??0ofstream@@QAE@ABV0@@Z
@ stub -arch=win64 ??0ofstream@@QEAA@AEBV0@@Z
@ stub -arch=win32 ??0ofstream@@QAE@H@Z
@ stub -arch=win64 ??0ofstream@@QEAA@H@Z
@ stub -arch=win32 ??0ofstream@@QAE@HPADH@Z
@ stub -arch=win64 ??0ofstream@@QEAA@HPEADH@Z
@ stub -arch=win32 ??0ofstream@@QAE@PBDHH@Z
@ stub -arch=win64 ??0ofstream@@QEAA@PEBDHH@Z
@ stub -arch=win32 ??0ofstream@@QAE@XZ
@ stub -arch=win64 ??0ofstream@@QEAA@XZ
@ thiscall -arch=win32 ??0ofstream@@QAE@ABV0@@Z(ptr ptr long) msvcirt.??0ofstream@@QAE@ABV0@@Z
@ cdecl -arch=win64 ??0ofstream@@QEAA@AEBV0@@Z(ptr ptr long) msvcirt.??0ofstream@@QEAA@AEBV0@@Z
@ thiscall -arch=win32 ??0ofstream@@QAE@H@Z(ptr long long) msvcirt.??0ofstream@@QAE@H@Z
@ cdecl -arch=win64 ??0ofstream@@QEAA@H@Z(ptr long long) msvcirt.??0ofstream@@QEAA@H@Z
@ thiscall -arch=win32 ??0ofstream@@QAE@HPADH@Z(ptr long ptr long long) msvcirt.??0ofstream@@QAE@HPADH@Z
@ cdecl -arch=win64 ??0ofstream@@QEAA@HPEADH@Z(ptr long ptr long long) msvcirt.??0ofstream@@QEAA@HPEADH@Z
@ thiscall -arch=win32 ??0ofstream@@QAE@PBDHH@Z(ptr str long long long) msvcirt.??0ofstream@@QAE@PBDHH@Z
@ cdecl -arch=win64 ??0ofstream@@QEAA@PEBDHH@Z(ptr str long long long) msvcirt.??0ofstream@@QEAA@PEBDHH@Z
@ thiscall -arch=win32 ??0ofstream@@QAE@XZ(ptr long) msvcirt.??0ofstream@@QAE@XZ
@ cdecl -arch=win64 ??0ofstream@@QEAA@XZ(ptr long) msvcirt.??0ofstream@@QEAA@XZ
@ thiscall -arch=win32 ??0ostream@@IAE@ABV0@@Z(ptr ptr long) msvcirt.??0ostream@@IAE@ABV0@@Z
@ cdecl -arch=win64 ??0ostream@@IEAA@AEBV0@@Z(ptr ptr long) msvcirt.??0ostream@@IEAA@AEBV0@@Z
@ thiscall -arch=win32 ??0ostream@@IAE@XZ(ptr long) msvcirt.??0ostream@@IAE@XZ
@ -168,8 +168,8 @@
@ cdecl -arch=win64 ??1istrstream@@UEAA@XZ(ptr) msvcirt.??1istrstream@@UEAA@XZ
@ thiscall -arch=win32 ??1logic_error@@UAE@XZ(ptr) msvcirt.??1logic_error@@UAE@XZ
@ cdecl -arch=win64 ??1logic_error@@UEAA@XZ(ptr) msvcirt.??1logic_error@@UEAA@XZ
@ stub -arch=win32 ??1ofstream@@UAE@XZ
@ stub -arch=win64 ??1ofstream@@UEAA@XZ
@ thiscall -arch=win32 ??1ofstream@@UAE@XZ(ptr) msvcirt.??1ofstream@@UAE@XZ
@ cdecl -arch=win64 ??1ofstream@@UEAA@XZ(ptr) msvcirt.??1ofstream@@UEAA@XZ
@ thiscall -arch=win32 ??1ostream@@UAE@XZ(ptr) msvcirt.??1ostream@@UAE@XZ
@ cdecl -arch=win64 ??1ostream@@UEAA@XZ(ptr) msvcirt.??1ostream@@UEAA@XZ
@ thiscall -arch=win32 ??1ostream_withassign@@UAE@XZ(ptr) msvcirt.??1ostream_withassign@@UAE@XZ
@ -228,8 +228,8 @@
@ cdecl -arch=win64 ??4istrstream@@QEAAAEAV0@AEBV0@@Z(ptr ptr) msvcirt.??4istrstream@@QEAAAEAV0@AEBV0@@Z
@ thiscall -arch=win32 ??4logic_error@@QAEAAV0@ABV0@@Z(ptr ptr) msvcirt.??4logic_error@@QAEAAV0@ABV0@@Z
@ cdecl -arch=win64 ??4logic_error@@QEAAAEAV0@AEBV0@@Z(ptr ptr) msvcirt.??4logic_error@@QEAAAEAV0@AEBV0@@Z
@ stub -arch=win32 ??4ofstream@@QAEAAV0@ABV0@@Z
@ stub -arch=win64 ??4ofstream@@QEAAAEAV0@AEBV0@@Z
@ thiscall -arch=win32 ??4ofstream@@QAEAAV0@ABV0@@Z(ptr ptr) msvcirt.??4ofstream@@QAEAAV0@ABV0@@Z
@ cdecl -arch=win64 ??4ofstream@@QEAAAEAV0@AEBV0@@Z(ptr ptr) msvcirt.??4ofstream@@QEAAAEAV0@AEBV0@@Z
@ thiscall -arch=win32 ??4ostream@@IAEAAV0@ABV0@@Z(ptr ptr) msvcirt.??4ostream@@IAEAAV0@ABV0@@Z
@ cdecl -arch=win64 ??4ostream@@IEAAAEAV0@AEBV0@@Z(ptr ptr) msvcirt.??4ostream@@IEAAAEAV0@AEBV0@@Z
@ thiscall -arch=win32 ??4ostream@@IAEAAV0@PAVstreambuf@@@Z(ptr ptr) msvcirt.??4ostream@@IAEAAV0@PAVstreambuf@@@Z
@ -347,7 +347,7 @@
@ extern ??_7istream_withassign@@6B@ msvcirt.??_7istream_withassign@@6B@
@ extern ??_7istrstream@@6B@ msvcirt.??_7istrstream@@6B@
@ extern ??_7logic_error@@6B@ msvcirt.??_7logic_error@@6B@
# @ extern ??_7ofstream@@6B@
@ extern ??_7ofstream@@6B@ msvcirt.??_7ofstream@@6B@
@ extern ??_7ostream@@6B@ msvcirt.??_7ostream@@6B@
@ extern ??_7ostream_withassign@@6B@ msvcirt.??_7ostream_withassign@@6B@
@ extern ??_7ostrstream@@6B@ msvcirt.??_7ostrstream@@6B@
@ -364,7 +364,7 @@
@ extern ??_8istream@@7B@ msvcirt.??_8istream@@7B@
@ extern ??_8istream_withassign@@7B@ msvcirt.??_8istream_withassign@@7B@
@ extern ??_8istrstream@@7B@ msvcirt.??_8istrstream@@7B@
# @ extern ??_8ofstream@@7B@
@ extern ??_8ofstream@@7B@ msvcirt.??_8ofstream@@7B@
@ extern ??_8ostream@@7B@ msvcirt.??_8ostream@@7B@
@ extern ??_8ostream_withassign@@7B@ msvcirt.??_8ostream_withassign@@7B@
@ extern ??_8ostrstream@@7B@ msvcirt.??_8ostrstream@@7B@
@ -384,8 +384,8 @@
@ cdecl -arch=win64 ??_Distream_withassign@@QEAAXXZ(ptr) msvcirt.??_Distream_withassign@@QEAAXXZ
@ thiscall -arch=win32 ??_Distrstream@@QAEXXZ(ptr) msvcirt.??_Distrstream@@QAEXXZ
@ cdecl -arch=win64 ??_Distrstream@@QEAAXXZ(ptr) msvcirt.??_Distrstream@@QEAAXXZ
@ stub -arch=win32 ??_Dofstream@@QAEXXZ
@ stub -arch=win64 ??_Dofstream@@QEAAXXZ
@ thiscall -arch=win32 ??_Dofstream@@QAEXXZ(ptr) msvcirt.??_Dofstream@@QAEXXZ
@ cdecl -arch=win64 ??_Dofstream@@QEAAXXZ(ptr) msvcirt.??_Dofstream@@QEAAXXZ
@ thiscall -arch=win32 ??_Dostream@@QAEXXZ(ptr) msvcirt.??_Dostream@@QAEXXZ
@ cdecl -arch=win64 ??_Dostream@@QEAAXXZ(ptr) msvcirt.??_Dostream@@QEAAXXZ
@ thiscall -arch=win32 ??_Dostream_withassign@@QAEXXZ(ptr) msvcirt.??_Dostream_withassign@@QAEXXZ
@ -410,7 +410,7 @@
@ thiscall -arch=win32 ??_Eistream_withassign@@UAEPAXI@Z(ptr long) msvcirt.??_Eistream_withassign@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Eistrstream@@UAEPAXI@Z(ptr long) msvcirt.??_Eistrstream@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Elogic_error@@UAEPAXI@Z(ptr long) msvcirt.??_Elogic_error@@UAEPAXI@Z
@ stub -arch=win32 ??_Eofstream@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Eofstream@@UAEPAXI@Z(ptr long) msvcirt.??_Eofstream@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Eostream@@UAEPAXI@Z(ptr long) msvcirt.??_Eostream@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Eostream_withassign@@UAEPAXI@Z(ptr long) msvcirt.??_Eostream_withassign@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Eostrstream@@UAEPAXI@Z(ptr long) msvcirt.??_Eostrstream@@UAEPAXI@Z
@ -433,7 +433,7 @@
@ thiscall -arch=win32 ??_Gistream_withassign@@UAEPAXI@Z(ptr long) msvcirt.??_Gistream_withassign@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Gistrstream@@UAEPAXI@Z(ptr long) msvcirt.??_Gistrstream@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Glogic_error@@UAEPAXI@Z(ptr long) msvcirt.??_Glogic_error@@UAEPAXI@Z
@ stub -arch=win32 ??_Gofstream@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Gofstream@@UAEPAXI@Z(ptr long) msvcirt.??_Gofstream@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Gostream@@UAEPAXI@Z(ptr long) msvcirt.??_Gostream@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Gostream_withassign@@UAEPAXI@Z(ptr long) msvcirt.??_Gostream_withassign@@UAEPAXI@Z
@ thiscall -arch=win32 ??_Gostrstream@@UAEPAXI@Z(ptr long) msvcirt.??_Gostrstream@@UAEPAXI@Z
@ -459,8 +459,8 @@
@ stub -arch=win64 ?attach@fstream@@QEAAXH@Z
@ thiscall -arch=win32 ?attach@ifstream@@QAEXH@Z(ptr long) msvcirt.?attach@ifstream@@QAEXH@Z
@ cdecl -arch=win64 ?attach@ifstream@@QEAAXH@Z(ptr long) msvcirt.?attach@ifstream@@QEAAXH@Z
@ stub -arch=win32 ?attach@ofstream@@QAEXH@Z
@ stub -arch=win64 ?attach@ofstream@@QEAAXH@Z
@ thiscall -arch=win32 ?attach@ofstream@@QAEXH@Z(ptr long) msvcirt.?attach@ofstream@@QAEXH@Z
@ cdecl -arch=win64 ?attach@ofstream@@QEAAXH@Z(ptr long) msvcirt.?attach@ofstream@@QEAAXH@Z
@ thiscall -arch=win32 ?bad@ios@@QBEHXZ(ptr) msvcirt.?bad@ios@@QBEHXZ
@ cdecl -arch=win64 ?bad@ios@@QEBAHXZ(ptr) msvcirt.?bad@ios@@QEBAHXZ
@ thiscall -arch=win32 ?base@streambuf@@IBEPADXZ(ptr) msvcirt.?base@streambuf@@IBEPADXZ
@ -483,8 +483,8 @@
@ stub -arch=win64 ?close@fstream@@QEAAXXZ
@ thiscall -arch=win32 ?close@ifstream@@QAEXXZ(ptr) msvcirt.?close@ifstream@@QAEXXZ
@ cdecl -arch=win64 ?close@ifstream@@QEAAXXZ(ptr) msvcirt.?close@ifstream@@QEAAXXZ
@ stub -arch=win32 ?close@ofstream@@QAEXXZ
@ stub -arch=win64 ?close@ofstream@@QEAAXXZ
@ thiscall -arch=win32 ?close@ofstream@@QAEXXZ(ptr) msvcirt.?close@ofstream@@QAEXXZ
@ cdecl -arch=win64 ?close@ofstream@@QEAAXXZ(ptr) msvcirt.?close@ofstream@@QEAAXXZ
@ cdecl -arch=win32 ?clrlock@ios@@QAAXXZ(ptr) msvcirt.?clrlock@ios@@QAAXXZ
@ cdecl -arch=win64 ?clrlock@ios@@QEAAXXZ(ptr) msvcirt.?clrlock@ios@@QEAAXXZ
@ thiscall -arch=win32 ?clrlock@streambuf@@QAEXXZ(ptr) msvcirt.?clrlock@streambuf@@QAEXXZ
@ -527,8 +527,8 @@
@ stub -arch=win64 ?fd@fstream@@QEBAHXZ
@ thiscall -arch=win32 ?fd@ifstream@@QBEHXZ(ptr) msvcirt.?fd@ifstream@@QBEHXZ
@ cdecl -arch=win64 ?fd@ifstream@@QEBAHXZ(ptr) msvcirt.?fd@ifstream@@QEBAHXZ
@ stub -arch=win32 ?fd@ofstream@@QBEHXZ
@ stub -arch=win64 ?fd@ofstream@@QEBAHXZ
@ thiscall -arch=win32 ?fd@ofstream@@QBEHXZ(ptr) msvcirt.?fd@ofstream@@QBEHXZ
@ cdecl -arch=win64 ?fd@ofstream@@QEBAHXZ(ptr) msvcirt.?fd@ofstream@@QEBAHXZ
@ thiscall -arch=win32 ?fill@ios@@QAEDD@Z(ptr long) msvcirt.?fill@ios@@QAEDD@Z
@ cdecl -arch=win64 ?fill@ios@@QEAADD@Z(ptr long) msvcirt.?fill@ios@@QEAADD@Z
@ thiscall -arch=win32 ?fill@ios@@QBEDXZ(ptr) msvcirt.?fill@ios@@QBEDXZ
@ -596,8 +596,8 @@
@ stub -arch=win64 ?is_open@fstream@@QEBAHXZ
@ thiscall -arch=win32 ?is_open@ifstream@@QBEHXZ(ptr) msvcirt.?is_open@ifstream@@QBEHXZ
@ cdecl -arch=win64 ?is_open@ifstream@@QEBAHXZ(ptr) msvcirt.?is_open@ifstream@@QEBAHXZ
@ stub -arch=win32 ?is_open@ofstream@@QBEHXZ
@ stub -arch=win64 ?is_open@ofstream@@QEBAHXZ
@ thiscall -arch=win32 ?is_open@ofstream@@QBEHXZ(ptr) msvcirt.?is_open@ofstream@@QBEHXZ
@ cdecl -arch=win64 ?is_open@ofstream@@QEBAHXZ(ptr) msvcirt.?is_open@ofstream@@QEBAHXZ
@ thiscall -arch=win32 ?isfx@istream@@QAEXXZ(ptr) msvcirt.?isfx@istream@@QAEXXZ
@ cdecl -arch=win64 ?isfx@istream@@QEAAXXZ(ptr) msvcirt.?isfx@istream@@QEAAXXZ
@ thiscall -arch=win32 ?iword@ios@@QBEAAJH@Z(ptr long) msvcirt.?iword@ios@@QBEAAJH@Z
@ -623,8 +623,8 @@
@ stub -arch=win64 ?open@fstream@@QEAAXPEBDHH@Z
@ thiscall -arch=win32 ?open@ifstream@@QAEXPBDHH@Z(ptr str long long) msvcirt.?open@ifstream@@QAEXPBDHH@Z
@ cdecl -arch=win64 ?open@ifstream@@QEAAXPEBDHH@Z(ptr str long long) msvcirt.?open@ifstream@@QEAAXPEBDHH@Z
@ stub -arch=win32 ?open@ofstream@@QAEXPBDHH@Z
@ stub -arch=win64 ?open@ofstream@@QEAAXPEBDHH@Z
@ thiscall -arch=win32 ?open@ofstream@@QAEXPBDHH@Z(ptr str long long) msvcirt.?open@ofstream@@QAEXPBDHH@Z
@ cdecl -arch=win64 ?open@ofstream@@QEAAXPEBDHH@Z(ptr str long long) msvcirt.?open@ofstream@@QEAAXPEBDHH@Z
@ extern ?openprot@filebuf@@2HB msvcirt.?openprot@filebuf@@2HB
@ thiscall -arch=win32 ?opfx@ostream@@QAEHXZ(ptr) msvcirt.?opfx@ostream@@QAEHXZ
@ cdecl -arch=win64 ?opfx@ostream@@QEAAHXZ(ptr) msvcirt.?opfx@ostream@@QEAAHXZ
@ -678,8 +678,8 @@
@ cdecl -arch=win64 ?rdbuf@ios@@QEBAPEAVstreambuf@@XZ(ptr) msvcirt.?rdbuf@ios@@QEBAPEAVstreambuf@@XZ
@ thiscall -arch=win32 ?rdbuf@istrstream@@QBEPAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf@istrstream@@QBEPAVstrstreambuf@@XZ
@ cdecl -arch=win64 ?rdbuf@istrstream@@QEBAPEAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf@istrstream@@QEBAPEAVstrstreambuf@@XZ
@ stub -arch=win32 ?rdbuf@ofstream@@QBEPAVfilebuf@@XZ
@ stub -arch=win64 ?rdbuf@ofstream@@QEBAPEAVfilebuf@@XZ
@ thiscall -arch=win32 ?rdbuf@ofstream@@QBEPAVfilebuf@@XZ(ptr) msvcirt.?rdbuf@ofstream@@QBEPAVfilebuf@@XZ
@ cdecl -arch=win64 ?rdbuf@ofstream@@QEBAPEAVfilebuf@@XZ(ptr) msvcirt.?rdbuf@ofstream@@QEBAPEAVfilebuf@@XZ
@ thiscall -arch=win32 ?rdbuf@ostrstream@@QBEPAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf@ostrstream@@QBEPAVstrstreambuf@@XZ
@ cdecl -arch=win64 ?rdbuf@ostrstream@@QEBAPEAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf@ostrstream@@QEBAPEAVstrstreambuf@@XZ
@ thiscall -arch=win32 ?rdbuf@stdiostream@@QBEPAVstdiobuf@@XZ(ptr) msvcirt.?rdbuf@stdiostream@@QBEPAVstdiobuf@@XZ
@ -725,8 +725,8 @@
@ stub -arch=win64 ?setbuf@fstream@@QEAAPEAVstreambuf@@PEADH@Z
@ thiscall -arch=win32 ?setbuf@ifstream@@QAEPAVstreambuf@@PADH@Z(ptr ptr long) msvcirt.?setbuf@ifstream@@QAEPAVstreambuf@@PADH@Z
@ cdecl -arch=win64 ?setbuf@ifstream@@QEAAPEAVstreambuf@@PEADH@Z(ptr ptr long) msvcirt.?setbuf@ifstream@@QEAAPEAVstreambuf@@PEADH@Z
@ stub -arch=win32 ?setbuf@ofstream@@QAEPAVstreambuf@@PADH@Z
@ stub -arch=win64 ?setbuf@ofstream@@QEAAPEAVstreambuf@@PEADH@Z
@ thiscall -arch=win32 ?setbuf@ofstream@@QAEPAVstreambuf@@PADH@Z(ptr ptr long) msvcirt.?setbuf@ofstream@@QAEPAVstreambuf@@PADH@Z
@ cdecl -arch=win64 ?setbuf@ofstream@@QEAAPEAVstreambuf@@PEADH@Z(ptr ptr long) msvcirt.?setbuf@ofstream@@QEAAPEAVstreambuf@@PEADH@Z
@ thiscall -arch=win32 ?setbuf@streambuf@@UAEPAV1@PADH@Z(ptr ptr long) msvcirt.?setbuf@streambuf@@UAEPAV1@PADH@Z
@ cdecl -arch=win64 ?setbuf@streambuf@@UEAAPEAV1@PEADH@Z(ptr ptr long) msvcirt.?setbuf@streambuf@@UEAAPEAV1@PEADH@Z
@ thiscall -arch=win32 ?setbuf@strstreambuf@@UAEPAVstreambuf@@PADH@Z(ptr ptr long) msvcirt.?setbuf@strstreambuf@@UAEPAVstreambuf@@PADH@Z
@ -747,8 +747,8 @@
@ stub -arch=win64 ?setmode@fstream@@QEAAHH@Z
@ thiscall -arch=win32 ?setmode@ifstream@@QAEHH@Z(ptr long) msvcirt.?setmode@ifstream@@QAEHH@Z
@ cdecl -arch=win64 ?setmode@ifstream@@QEAAHH@Z(ptr long) msvcirt.?setmode@ifstream@@QEAAHH@Z
@ stub -arch=win32 ?setmode@ofstream@@QAEHH@Z
@ stub -arch=win64 ?setmode@ofstream@@QEAAHH@Z
@ thiscall -arch=win32 ?setmode@ofstream@@QAEHH@Z(ptr long) msvcirt.?setmode@ofstream@@QAEHH@Z
@ cdecl -arch=win64 ?setmode@ofstream@@QEAAHH@Z(ptr long) msvcirt.?setmode@ofstream@@QEAAHH@Z
@ thiscall -arch=win32 ?setp@streambuf@@IAEXPAD0@Z(ptr ptr ptr) msvcirt.?setp@streambuf@@IAEXPAD0@Z
@ cdecl -arch=win64 ?setp@streambuf@@IEAAXPEAD0@Z(ptr ptr ptr) msvcirt.?setp@streambuf@@IEAAXPEAD0@Z
@ thiscall -arch=win32 ?setrwbuf@stdiobuf@@QAEHHH@Z(ptr long long) msvcirt.?setrwbuf@stdiobuf@@QAEHHH@Z