[3/4] msvcirt: Add a partial implementation of class stdiostream.

Iván Matellanes matellanesivan at gmail.com
Fri Oct 21 12:34:03 CDT 2016


Signed-off-by: Iván Matellanes <matellanesivan at gmail.com>
---
 dlls/msvcirt/msvcirt.c      | 44 ++++++++++++++++++++++++++++++++++++++++++++
 dlls/msvcirt/msvcirt.spec   | 34 +++++++++++++++++-----------------
 dlls/msvcrt20/msvcrt20.spec | 34 +++++++++++++++++-----------------
 dlls/msvcrt40/msvcrt40.spec | 34 +++++++++++++++++-----------------
 4 files changed, 95 insertions(+), 51 deletions(-)

diff --git a/dlls/msvcirt/msvcirt.c b/dlls/msvcirt/msvcirt.c
index 9c36e69..1c1e469 100644
--- a/dlls/msvcirt/msvcirt.c
+++ b/dlls/msvcirt/msvcirt.c
@@ -197,6 +197,8 @@ extern const vtable_ptr MSVCP_istrstream_vtable;
 extern const vtable_ptr MSVCP_iostream_vtable;
 /* ??_7strstream@@6B@ */
 extern const vtable_ptr MSVCP_strstream_vtable;
+/* ??_7stdiostream@@6B@ */
+extern const vtable_ptr MSVCP_stdiostream_vtable;
 
 #ifndef __GNUC__
 void __asm_dummy_vtables(void) {
@@ -267,6 +269,8 @@ void __asm_dummy_vtables(void) {
             VTABLE_ADD_FUNC(iostream_vector_dtor));
     __ASM_VTABLE(strstream,
             VTABLE_ADD_FUNC(iostream_vector_dtor));
+    __ASM_VTABLE(stdiostream,
+            VTABLE_ADD_FUNC(iostream_vector_dtor));
 #ifndef __GNUC__
 }
 #endif
@@ -283,9 +287,11 @@ const int ostream_vbtable[] = {0, VBTABLE_ENTRY(ostream, FIELD_OFFSET(ostream, v
 /* ??_8istrstream@@7B@ */
 const int istream_vbtable[] = {0, VBTABLE_ENTRY(istream, FIELD_OFFSET(istream, vbtable), ios)};
 /* ??_8iostream@@7Bistream@@@ */
+/* ??_8stdiostream@@7Bistream@@@ */
 /* ??_8strstream@@7Bistream@@@ */
 const int iostream_vbtable_istream[] = {0, VBTABLE_ENTRY(iostream, FIELD_OFFSET(iostream, base1), ios)};
 /* ??_8iostream@@7Bostream@@@ */
+/* ??_8stdiostream@@7Bostream@@@ */
 /* ??_8strstream@@7Bostream@@@ */
 const int iostream_vbtable_ostream[] = {0, VBTABLE_ENTRY(iostream, FIELD_OFFSET(iostream, base2), ios)};
 
@@ -310,6 +316,9 @@ DEFINE_RTTI_DATA4(iostream, sizeof(iostream),
 DEFINE_RTTI_DATA4(strstream, sizeof(iostream),
     &istream_rtti_base_descriptor, &ios_rtti_base_descriptor,
     &ostream_rtti_base_descriptor, &ios_rtti_base_descriptor, ".?AVstrstream@@")
+DEFINE_RTTI_DATA4(stdiostream, sizeof(iostream),
+    &istream_rtti_base_descriptor, &ios_rtti_base_descriptor,
+    &ostream_rtti_base_descriptor, &ios_rtti_base_descriptor, ".?AVstdiostream@@")
 
 /* ?cin@@3Vistream_withassign@@A */
 struct {
@@ -4138,6 +4147,8 @@ iostream* __thiscall iostream_copy_ctor(iostream *this, const iostream *copy, BO
 
 /* ??1iostream@@UAE at XZ */
 /* ??1iostream@@UEAA at XZ */
+/* ??1stdiostream@@UAE at XZ */
+/* ??1stdiostream@@UEAA at XZ */
 /* ??1strstream@@UAE at XZ */
 /* ??1strstream@@UEAA at XZ */
 DEFINE_THISCALL_WRAPPER(iostream_dtor, 4)
@@ -4164,6 +4175,8 @@ iostream* __thiscall iostream_assign_sb(iostream *this, streambuf *sb)
 
 /* ??4iostream@@IAEAAV0 at AAV0@@Z */
 /* ??4iostream@@IEAAAEAV0 at AEAV0@@Z */
+/* ??4stdiostream@@QAEAAV0 at AAV0@@Z */
+/* ??4stdiostream@@QEAAAEAV0 at AEAV0@@Z */
 /* ??4strstream@@QAEAAV0 at ABV0@@Z */
 /* ??4strstream@@QEAAAEAV0 at AEBV0@@Z */
 DEFINE_THISCALL_WRAPPER(iostream_assign, 8)
@@ -4174,6 +4187,8 @@ iostream* __thiscall iostream_assign(iostream *this, const iostream *rhs)
 
 /* ??_Diostream@@QAEXXZ */
 /* ??_Diostream@@QEAAXXZ */
+/* ??_Dstdiostream@@QAEXXZ */
+/* ??_Dstdiostream@@QEAAXXZ */
 /* ??_Dstrstream@@QAEXXZ */
 /* ??_Dstrstream@@QEAAXXZ */
 DEFINE_THISCALL_WRAPPER(iostream_vbase_dtor, 4)
@@ -4188,6 +4203,7 @@ void __thiscall iostream_vbase_dtor(iostream *this)
 }
 
 /* ??_Eiostream@@UAEPAXI at Z */
+/* ??_Estdiostream@@UAEPAXI at Z */
 /* ??_Estrstream@@UAEPAXI at Z */
 DEFINE_THISCALL_WRAPPER(iostream_vector_dtor, 8)
 iostream* __thiscall iostream_vector_dtor(ios *base, unsigned int flags)
@@ -4212,6 +4228,7 @@ iostream* __thiscall iostream_vector_dtor(ios *base, unsigned int flags)
 }
 
 /* ??_Giostream@@UAEPAXI at Z */
+/* ??_Gstdiostream@@UAEPAXI at Z */
 /* ??_Gstrstream@@UAEPAXI at Z */
 DEFINE_THISCALL_WRAPPER(iostream_scalar_dtor, 8)
 iostream* __thiscall iostream_scalar_dtor(ios *base, unsigned int flags)
@@ -4323,6 +4340,32 @@ char* __thiscall strstream_str(iostream *this)
     return strstreambuf_str(strstream_rdbuf(this));
 }
 
+/* ??0stdiostream@@QAE at ABV0@@Z */
+/* ??0stdiostream@@QEAA at AEBV0@@Z */
+DEFINE_THISCALL_WRAPPER(stdiostream_copy_ctor, 12)
+iostream* __thiscall stdiostream_copy_ctor(iostream *this, const iostream *copy, BOOL virt_init)
+{
+    FIXME("(%p %p %d) stub\n", this, copy, virt_init);
+    return this;
+}
+
+/* ??0stdiostream@@QAE at PAU_iobuf@@@Z */
+/* ??0stdiostream@@QEAA at PEAU_iobuf@@@Z */
+DEFINE_THISCALL_WRAPPER(stdiostream_file_ctor, 12)
+iostream* __thiscall stdiostream_file_ctor(iostream *this, FILE *file, BOOL virt_init)
+{
+    FIXME("(%p %p %d) stub\n", this, file, virt_init);
+    return this;
+}
+
+/* ?rdbuf at stdiostream@@QBEPAVstdiobuf@@XZ */
+/* ?rdbuf at stdiostream@@QEBAPEAVstdiobuf@@XZ */
+DEFINE_THISCALL_WRAPPER(stdiostream_rdbuf, 4)
+stdiobuf* __thiscall stdiostream_rdbuf(const iostream *this)
+{
+    return (stdiobuf*) istream_get_ios(&this->base1)->sb;
+}
+
 /* ??0Iostream_init@@QAE at AAVios@@H at Z */
 /* ??0Iostream_init@@QEAA at AEAVios@@H at Z */
 DEFINE_THISCALL_WRAPPER(Iostream_init_ios_ctor, 12)
@@ -4479,6 +4522,7 @@ static void init_io(void *base)
     init_istrstream_rtti(base);
     init_iostream_rtti(base);
     init_strstream_rtti(base);
+    init_stdiostream_rtti(base);
 #endif
 
     if ((fb = MSVCRT_operator_new(sizeof(filebuf)))) {
diff --git a/dlls/msvcirt/msvcirt.spec b/dlls/msvcirt/msvcirt.spec
index 557185d..2e5154c 100644
--- a/dlls/msvcirt/msvcirt.spec
+++ b/dlls/msvcirt/msvcirt.spec
@@ -102,10 +102,10 @@
 @ cdecl -arch=win64 ??0stdiobuf@@QEAA at AEBV0@@Z(ptr ptr) stdiobuf_copy_ctor
 @ thiscall -arch=win32 ??0stdiobuf@@QAE at PAU_iobuf@@@Z(ptr ptr) stdiobuf_file_ctor
 @ cdecl -arch=win64 ??0stdiobuf@@QEAA at PEAU_iobuf@@@Z(ptr ptr) stdiobuf_file_ctor
-@ stub -arch=win32 ??0stdiostream@@QAE at ABV0@@Z  # __thiscall stdiostream::stdiostream(class stdiostream const &)
-@ stub -arch=win64 ??0stdiostream@@QEAA at AEBV0@@Z
-@ stub -arch=win32 ??0stdiostream@@QAE at PAU_iobuf@@@Z  # __thiscall stdiostream::stdiostream(struct _iobuf *)
-@ stub -arch=win64 ??0stdiostream@@QEAA at PEAU_iobuf@@@Z
+@ thiscall -arch=win32 ??0stdiostream@@QAE at ABV0@@Z(ptr ptr long) stdiostream_copy_ctor
+@ cdecl -arch=win64 ??0stdiostream@@QEAA at AEBV0@@Z(ptr ptr long) stdiostream_copy_ctor
+@ thiscall -arch=win32 ??0stdiostream@@QAE at PAU_iobuf@@@Z(ptr ptr long) stdiostream_file_ctor
+@ cdecl -arch=win64 ??0stdiostream@@QEAA at PEAU_iobuf@@@Z(ptr ptr long) stdiostream_file_ctor
 @ thiscall -arch=win32 ??0streambuf@@IAE at PADH@Z(ptr ptr long) streambuf_reserve_ctor
 @ cdecl -arch=win64 ??0streambuf@@IEAA at PEADH@Z(ptr ptr long) streambuf_reserve_ctor
 @ thiscall -arch=win32 ??0streambuf@@IAE at XZ(ptr) streambuf_ctor
@@ -162,8 +162,8 @@
 @ cdecl -arch=win64 ??1ostrstream@@UEAA at XZ(ptr) ostream_dtor
 @ thiscall -arch=win32 ??1stdiobuf@@UAE at XZ(ptr) stdiobuf_dtor
 @ cdecl -arch=win64 ??1stdiobuf@@UEAA at XZ(ptr) stdiobuf_dtor
-@ stub -arch=win32 ??1stdiostream@@UAE at XZ  # virtual __thiscall stdiostream::~stdiostream(void)
-@ stub -arch=win64 ??1stdiostream@@UEAA at XZ
+@ thiscall -arch=win32 ??1stdiostream@@UAE at XZ(ptr) iostream_dtor
+@ cdecl -arch=win64 ??1stdiostream@@UEAA at XZ(ptr) iostream_dtor
 @ thiscall -arch=win32 ??1streambuf@@UAE at XZ(ptr) streambuf_dtor
 @ cdecl -arch=win64 ??1streambuf@@UEAA at XZ(ptr) streambuf_dtor
 @ thiscall -arch=win32 ??1strstream@@UAE at XZ(ptr) iostream_dtor
@@ -216,8 +216,8 @@
 @ cdecl -arch=win64 ??4ostrstream@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) ostream_assign
 @ thiscall -arch=win32 ??4stdiobuf@@QAEAAV0 at ABV0@@Z(ptr ptr) stdiobuf_assign
 @ cdecl -arch=win64 ??4stdiobuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) stdiobuf_assign
-@ stub -arch=win32 ??4stdiostream@@QAEAAV0 at AAV0@@Z  # class stdiostream & __thiscall stdiostream::operator=(class stdiostream &)
-@ stub -arch=win64 ??4stdiostream@@QEAAAEAV0 at AEAV0@@Z
+@ thiscall -arch=win32 ??4stdiostream@@QAEAAV0 at AAV0@@Z(ptr ptr) iostream_assign
+@ cdecl -arch=win64 ??4stdiostream@@QEAAAEAV0 at AEAV0@@Z(ptr ptr) iostream_assign
 @ thiscall -arch=win32 ??4streambuf@@QAEAAV0 at ABV0@@Z(ptr ptr) streambuf_assign
 @ cdecl -arch=win64 ??4streambuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) streambuf_assign
 @ thiscall -arch=win32 ??4strstream@@QAEAAV0 at AAV0@@Z(ptr ptr) iostream_assign
@@ -317,7 +317,7 @@
 @ extern ??_7ostream_withassign@@6B@ MSVCP_ostream_withassign_vtable
 @ extern ??_7ostrstream@@6B@ MSVCP_ostrstream_vtable
 @ extern ??_7stdiobuf@@6B@ MSVCP_stdiobuf_vtable
-# @ extern ??_7stdiostream@@6B@  # const stdiostream::`vftable'
+@ extern ??_7stdiostream@@6B@ MSVCP_stdiostream_vtable
 @ extern ??_7streambuf@@6B@ MSVCP_streambuf_vtable
 @ extern ??_7strstream@@6B@ MSVCP_strstream_vtable
 @ extern ??_7strstreambuf@@6B@ MSVCP_strstreambuf_vtable
@@ -333,8 +333,8 @@
 @ extern ??_8ostream@@7B@ ostream_vbtable
 @ extern ??_8ostream_withassign@@7B@ ostream_vbtable
 @ extern ??_8ostrstream@@7B@ ostream_vbtable
-# @ extern ??_8stdiostream@@7Bistream@@@  # const stdiostream::`vbtable'{for `istream'}
-# @ extern ??_8stdiostream@@7Bostream@@@  # const stdiostream::`vbtable'{for `ostream'}
+@ extern ??_8stdiostream@@7Bistream@@@ iostream_vbtable_istream
+@ extern ??_8stdiostream@@7Bostream@@@ iostream_vbtable_ostream
 @ extern ??_8strstream@@7Bistream@@@ iostream_vbtable_istream
 @ extern ??_8strstream@@7Bostream@@@ iostream_vbtable_ostream
 @ stub -arch=win32 ??_Dfstream@@QAEXXZ  # void __thiscall fstream::`vbase destructor'(void)
@@ -357,8 +357,8 @@
 @ cdecl -arch=win64 ??_Dostream_withassign@@QEAAXXZ(ptr) ostream_vbase_dtor
 @ thiscall -arch=win32 ??_Dostrstream@@QAEXXZ(ptr) ostream_vbase_dtor
 @ cdecl -arch=win64 ??_Dostrstream@@QEAAXXZ(ptr) ostream_vbase_dtor
-@ stub -arch=win32 ??_Dstdiostream@@QAEXXZ  # void __thiscall stdiostream::`vbase destructor'(void)
-@ stub -arch=win64 ??_Dstdiostream@@QEAAXXZ
+@ thiscall -arch=win32 ??_Dstdiostream@@QAEXXZ(ptr) iostream_vbase_dtor
+@ cdecl -arch=win64 ??_Dstdiostream@@QEAAXXZ(ptr) iostream_vbase_dtor
 @ thiscall -arch=win32 ??_Dstrstream@@QAEXXZ(ptr) iostream_vbase_dtor
 @ cdecl -arch=win64 ??_Dstrstream@@QEAAXXZ(ptr) iostream_vbase_dtor
 @ thiscall -arch=win32 ??_Eexception@@UAEPAXI at Z(ptr long) MSVCP_exception_vector_dtor
@@ -376,7 +376,7 @@
 @ thiscall -arch=win32 ??_Eostream_withassign@@UAEPAXI at Z(ptr long) ostream_vector_dtor
 @ thiscall -arch=win32 ??_Eostrstream@@UAEPAXI at Z(ptr long) ostream_vector_dtor
 @ thiscall -arch=win32 ??_Estdiobuf@@UAEPAXI at Z(ptr long) stdiobuf_vector_dtor
-@ stub -arch=win32 ??_Estdiostream@@UAEPAXI at Z  # virtual void * __thiscall stdiostream::`vector deleting destructor'(unsigned int)
+@ thiscall -arch=win32 ??_Estdiostream@@UAEPAXI at Z(ptr long) iostream_vector_dtor
 @ thiscall -arch=win32 ??_Estreambuf@@UAEPAXI at Z(ptr long) streambuf_vector_dtor
 @ thiscall -arch=win32 ??_Estrstream@@UAEPAXI at Z(ptr long) iostream_vector_dtor
 @ thiscall -arch=win32 ??_Estrstreambuf@@UAEPAXI at Z(ptr long) strstreambuf_vector_dtor
@@ -395,7 +395,7 @@
 @ thiscall -arch=win32 ??_Gostream_withassign@@UAEPAXI at Z(ptr long) ostream_scalar_dtor
 @ thiscall -arch=win32 ??_Gostrstream@@UAEPAXI at Z(ptr long) ostream_scalar_dtor
 @ thiscall -arch=win32 ??_Gstdiobuf@@UAEPAXI at Z(ptr long) stdiobuf_scalar_dtor
-@ stub -arch=win32 ??_Gstdiostream@@UAEPAXI at Z  # virtual void * __thiscall stdiostream::`scalar deleting destructor'(unsigned int)
+@ thiscall -arch=win32 ??_Gstdiostream@@UAEPAXI at Z(ptr long) iostream_scalar_dtor
 @ thiscall -arch=win32 ??_Gstreambuf@@UAEPAXI at Z(ptr long) streambuf_scalar_dtor
 @ thiscall -arch=win32 ??_Gstrstream@@UAEPAXI at Z(ptr long) iostream_scalar_dtor
 @ thiscall -arch=win32 ??_Gstrstreambuf@@UAEPAXI at Z(ptr long) strstreambuf_scalar_dtor
@@ -625,8 +625,8 @@
 @ stub -arch=win64 ?rdbuf at ofstream@@QEBAPEAVfilebuf@@XZ
 @ thiscall -arch=win32 ?rdbuf at ostrstream@@QBEPAVstrstreambuf@@XZ(ptr) ostrstream_rdbuf
 @ cdecl -arch=win64 ?rdbuf at ostrstream@@QEBAPEAVstrstreambuf@@XZ(ptr) ostrstream_rdbuf
-@ stub -arch=win32 ?rdbuf at stdiostream@@QBEPAVstdiobuf@@XZ  # class stdiobuf * __thiscall stdiostream::rdbuf(void)const 
-@ stub -arch=win64 ?rdbuf at stdiostream@@QEBAPEAVstdiobuf@@XZ
+@ thiscall -arch=win32 ?rdbuf at stdiostream@@QBEPAVstdiobuf@@XZ(ptr) stdiostream_rdbuf
+@ cdecl -arch=win64 ?rdbuf at stdiostream@@QEBAPEAVstdiobuf@@XZ(ptr) stdiostream_rdbuf
 @ thiscall -arch=win32 ?rdbuf at strstream@@QBEPAVstrstreambuf@@XZ(ptr) strstream_rdbuf
 @ cdecl -arch=win64 ?rdbuf at strstream@@QEBAPEAVstrstreambuf@@XZ(ptr) strstream_rdbuf
 @ thiscall -arch=win32 ?rdstate at ios@@QBEHXZ(ptr) ios_rdstate
diff --git a/dlls/msvcrt20/msvcrt20.spec b/dlls/msvcrt20/msvcrt20.spec
index 4059a47..2187843 100644
--- a/dlls/msvcrt20/msvcrt20.spec
+++ b/dlls/msvcrt20/msvcrt20.spec
@@ -92,10 +92,10 @@
 @ cdecl -arch=win64 ??0stdiobuf@@QEAA at AEBV0@@Z(ptr ptr) msvcirt.??0stdiobuf@@QEAA at AEBV0@@Z
 @ thiscall -arch=win32 ??0stdiobuf@@QAE at PAU_iobuf@@@Z(ptr ptr) msvcirt.??0stdiobuf@@QAE at PAU_iobuf@@@Z
 @ cdecl -arch=win64 ??0stdiobuf@@QEAA at PEAU_iobuf@@@Z(ptr ptr) msvcirt.??0stdiobuf@@QEAA at PEAU_iobuf@@@Z
-@ stub -arch=win32 ??0stdiostream@@QAE at ABV0@@Z
-@ stub -arch=win64 ??0stdiostream@@QEAA at AEBV0@@Z
-@ stub -arch=win32 ??0stdiostream@@QAE at PAU_iobuf@@@Z
-@ stub -arch=win64 ??0stdiostream@@QEAA at PEAU_iobuf@@@Z
+@ thiscall -arch=win32 ??0stdiostream@@QAE at ABV0@@Z(ptr ptr long) msvcirt.??0stdiostream@@QAE at ABV0@@Z
+@ cdecl -arch=win64 ??0stdiostream@@QEAA at AEBV0@@Z(ptr ptr long) msvcirt.??0stdiostream@@QEAA at AEBV0@@Z
+@ thiscall -arch=win32 ??0stdiostream@@QAE at PAU_iobuf@@@Z(ptr ptr long) msvcirt.??0stdiostream@@QAE at PAU_iobuf@@@Z
+@ cdecl -arch=win64 ??0stdiostream@@QEAA at PEAU_iobuf@@@Z(ptr ptr long) msvcirt.??0stdiostream@@QEAA at PEAU_iobuf@@@Z
 @ thiscall -arch=win32 ??0streambuf@@IAE at PADH@Z(ptr ptr long) msvcirt.??0streambuf@@IAE at PADH@Z
 @ cdecl -arch=win64 ??0streambuf@@IEAA at PEADH@Z(ptr ptr long) msvcirt.??0streambuf@@IEAA at PEADH@Z
 @ thiscall -arch=win32 ??0streambuf@@IAE at XZ(ptr) msvcirt.??0streambuf@@IAE at XZ
@@ -146,8 +146,8 @@
 @ cdecl -arch=win64 ??1ostrstream@@UEAA at XZ(ptr) msvcirt.??1ostrstream@@UEAA at XZ
 @ thiscall -arch=win32 ??1stdiobuf@@UAE at XZ(ptr) msvcirt.??1stdiobuf@@UAE at XZ
 @ cdecl -arch=win64 ??1stdiobuf@@UEAA at XZ(ptr) msvcirt.??1stdiobuf@@UEAA at XZ
-@ stub -arch=win32 ??1stdiostream@@UAE at XZ
-@ stub -arch=win64 ??1stdiostream@@UEAA at XZ
+@ thiscall -arch=win32 ??1stdiostream@@UAE at XZ(ptr) msvcirt.??1stdiostream@@UAE at XZ
+@ cdecl -arch=win64 ??1stdiostream@@UEAA at XZ(ptr) msvcirt.??1stdiostream@@UEAA at XZ
 @ thiscall -arch=win32 ??1streambuf@@UAE at XZ(ptr) msvcirt.??1streambuf@@UAE at XZ
 @ cdecl -arch=win64 ??1streambuf@@UEAA at XZ(ptr) msvcirt.??1streambuf@@UEAA at XZ
 @ thiscall -arch=win32 ??1strstream@@UAE at XZ(ptr) msvcirt.??1strstream@@UAE at XZ
@@ -200,8 +200,8 @@
 @ cdecl -arch=win64 ??4ostrstream@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4ostrstream@@QEAAAEAV0 at AEBV0@@Z
 @ thiscall -arch=win32 ??4stdiobuf@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4stdiobuf@@QAEAAV0 at ABV0@@Z
 @ cdecl -arch=win64 ??4stdiobuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4stdiobuf@@QEAAAEAV0 at AEBV0@@Z
-@ stub -arch=win32 ??4stdiostream@@QAEAAV0 at AAV0@@Z
-@ stub -arch=win64 ??4stdiostream@@QEAAAEAV0 at AEAV0@@Z
+@ thiscall -arch=win32 ??4stdiostream@@QAEAAV0 at AAV0@@Z(ptr ptr) msvcirt.??4stdiostream@@QAEAAV0 at AAV0@@Z
+@ cdecl -arch=win64 ??4stdiostream@@QEAAAEAV0 at AEAV0@@Z(ptr ptr) msvcirt.??4stdiostream@@QEAAAEAV0 at AEAV0@@Z
 @ thiscall -arch=win32 ??4streambuf@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4streambuf@@QAEAAV0 at ABV0@@Z
 @ cdecl -arch=win64 ??4streambuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4streambuf@@QEAAAEAV0 at AEBV0@@Z
 @ thiscall -arch=win32 ??4strstream@@QAEAAV0 at AAV0@@Z(ptr ptr) msvcirt.??4strstream@@QAEAAV0 at AAV0@@Z
@@ -299,7 +299,7 @@
 @ extern ??_7ostream_withassign@@6B@ msvcirt.??_7ostream_withassign@@6B@
 @ extern ??_7ostrstream@@6B@ msvcirt.??_7ostrstream@@6B@
 @ extern ??_7stdiobuf@@6B@ msvcirt.??_7stdiobuf@@6B@
-# @ extern ??_7stdiostream@@6B@
+@ extern ??_7stdiostream@@6B@ msvcirt.??_7stdiostream@@6B@
 @ extern ??_7streambuf@@6B@ msvcirt.??_7streambuf@@6B@
 @ extern ??_7strstream@@6B@ msvcirt.??_7strstream@@6B@
 @ extern ??_7strstreambuf@@6B@ msvcirt.??_7strstreambuf@@6B@
@@ -315,8 +315,8 @@
 @ extern ??_8ostream@@7B@ msvcirt.??_8ostream@@7B@
 @ extern ??_8ostream_withassign@@7B@ msvcirt.??_8ostream_withassign@@7B@
 @ extern ??_8ostrstream@@7B@ msvcirt.??_8ostrstream@@7B@
-# @ extern ??_8stdiostream@@7Bistream@@@
-# @ extern ??_8stdiostream@@7Bostream@@@
+@ extern ??_8stdiostream@@7Bistream@@@ msvcirt.??_8stdiostream@@7Bistream@@@
+@ extern ??_8stdiostream@@7Bostream@@@ msvcirt.??_8stdiostream@@7Bostream@@@
 @ extern ??_8strstream@@7Bistream@@@ msvcirt.??_8strstream@@7Bistream@@@
 @ extern ??_8strstream@@7Bostream@@@ msvcirt.??_8strstream@@7Bostream@@@
 @ stub -arch=win32 ??_Dfstream@@QAEXXZ
@@ -339,8 +339,8 @@
 @ cdecl -arch=win64 ??_Dostream_withassign@@QEAAXXZ(ptr) msvcirt.??_Dostream_withassign@@QEAAXXZ
 @ thiscall -arch=win32 ??_Dostrstream@@QAEXXZ(ptr) msvcirt.??_Dostrstream@@QAEXXZ
 @ cdecl -arch=win64 ??_Dostrstream@@QEAAXXZ(ptr) msvcirt.??_Dostrstream@@QEAAXXZ
-@ stub -arch=win32 ??_Dstdiostream@@QAEXXZ
-@ stub -arch=win64 ??_Dstdiostream@@QEAAXXZ
+@ thiscall -arch=win32 ??_Dstdiostream@@QAEXXZ(ptr) msvcirt.??_Dstdiostream@@QAEXXZ
+@ cdecl -arch=win64 ??_Dstdiostream@@QEAAXXZ(ptr) msvcirt.??_Dstdiostream@@QEAAXXZ
 @ thiscall -arch=win32 ??_Dstrstream@@QAEXXZ(ptr) msvcirt.??_Dstrstream@@QAEXXZ
 @ cdecl -arch=win64 ??_Dstrstream@@QEAAXXZ(ptr) msvcirt.??_Dstrstream@@QEAAXXZ
 @ stub -arch=win32 ??_EIostream_init@@QAEPAXI at Z
@@ -357,7 +357,7 @@
 @ thiscall -arch=win32 ??_Eostream_withassign@@UAEPAXI at Z(ptr long) msvcirt.??_Eostream_withassign@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Eostrstream@@UAEPAXI at Z(ptr long) msvcirt.??_Eostrstream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Estdiobuf@@UAEPAXI at Z(ptr long) msvcirt.??_Estdiobuf@@UAEPAXI at Z
-@ stub -arch=win32 ??_Estdiostream@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Estdiostream@@UAEPAXI at Z(ptr long) msvcirt.??_Estdiostream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Estreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Estreambuf@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Estrstream@@UAEPAXI at Z(ptr long) msvcirt.??_Estrstream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Estrstreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Estrstreambuf@@UAEPAXI at Z
@@ -375,7 +375,7 @@
 @ thiscall -arch=win32 ??_Gostream_withassign@@UAEPAXI at Z(ptr long) msvcirt.??_Gostream_withassign@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Gostrstream@@UAEPAXI at Z(ptr long) msvcirt.??_Gostrstream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Gstdiobuf@@UAEPAXI at Z(ptr long) msvcirt.??_Gstdiobuf@@UAEPAXI at Z
-@ stub -arch=win32 ??_Gstdiostream@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Gstdiostream@@UAEPAXI at Z(ptr long) msvcirt.??_Gstdiostream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Gstreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Gstreambuf@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Gstrstream@@UAEPAXI at Z(ptr long) msvcirt.??_Gstrstream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Gstrstreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Gstrstreambuf@@UAEPAXI at Z
@@ -611,8 +611,8 @@
 @ stub -arch=win64 ?rdbuf at ofstream@@QEBAPEAVfilebuf@@XZ
 @ thiscall -arch=win32 ?rdbuf at ostrstream@@QBEPAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf at ostrstream@@QBEPAVstrstreambuf@@XZ
 @ cdecl -arch=win64 ?rdbuf at ostrstream@@QEBAPEAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf at ostrstream@@QEBAPEAVstrstreambuf@@XZ
-@ stub -arch=win32 ?rdbuf at stdiostream@@QBEPAVstdiobuf@@XZ
-@ stub -arch=win64 ?rdbuf at stdiostream@@QEBAPEAVstdiobuf@@XZ
+@ thiscall -arch=win32 ?rdbuf at stdiostream@@QBEPAVstdiobuf@@XZ(ptr) msvcirt.?rdbuf at stdiostream@@QBEPAVstdiobuf@@XZ
+@ cdecl -arch=win64 ?rdbuf at stdiostream@@QEBAPEAVstdiobuf@@XZ(ptr) msvcirt.?rdbuf at stdiostream@@QEBAPEAVstdiobuf@@XZ
 @ thiscall -arch=win32 ?rdbuf at strstream@@QBEPAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf at strstream@@QBEPAVstrstreambuf@@XZ
 @ cdecl -arch=win64 ?rdbuf at strstream@@QEBAPEAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf at strstream@@QEBAPEAVstrstreambuf@@XZ
 @ thiscall -arch=win32 ?rdstate at ios@@QBEHXZ(ptr) msvcirt.?rdstate at ios@@QBEHXZ
diff --git a/dlls/msvcrt40/msvcrt40.spec b/dlls/msvcrt40/msvcrt40.spec
index 40b6eab..a1e14f8 100644
--- a/dlls/msvcrt40/msvcrt40.spec
+++ b/dlls/msvcrt40/msvcrt40.spec
@@ -114,10 +114,10 @@
 @ cdecl -arch=win64 ??0stdiobuf@@QEAA at AEBV0@@Z(ptr ptr) msvcirt.??0stdiobuf@@QEAA at AEBV0@@Z
 @ thiscall -arch=win32 ??0stdiobuf@@QAE at PAU_iobuf@@@Z(ptr ptr) msvcirt.??0stdiobuf@@QAE at PAU_iobuf@@@Z
 @ cdecl -arch=win64 ??0stdiobuf@@QEAA at PEAU_iobuf@@@Z(ptr ptr) msvcirt.??0stdiobuf@@QEAA at PEAU_iobuf@@@Z
-@ stub -arch=win32 ??0stdiostream@@QAE at ABV0@@Z
-@ stub -arch=win64 ??0stdiostream@@QEAA at AEBV0@@Z
-@ stub -arch=win32 ??0stdiostream@@QAE at PAU_iobuf@@@Z
-@ stub -arch=win64 ??0stdiostream@@QEAA at PEAU_iobuf@@@Z
+@ thiscall -arch=win32 ??0stdiostream@@QAE at ABV0@@Z(ptr ptr long) msvcirt.??0stdiostream@@QAE at ABV0@@Z
+@ cdecl -arch=win64 ??0stdiostream@@QEAA at AEBV0@@Z(ptr ptr long) msvcirt.??0stdiostream@@QEAA at AEBV0@@Z
+@ thiscall -arch=win32 ??0stdiostream@@QAE at PAU_iobuf@@@Z(ptr ptr long) msvcirt.??0stdiostream@@QAE at PAU_iobuf@@@Z
+@ cdecl -arch=win64 ??0stdiostream@@QEAA at PEAU_iobuf@@@Z(ptr ptr long) msvcirt.??0stdiostream@@QEAA at PEAU_iobuf@@@Z
 @ thiscall -arch=win32 ??0streambuf@@IAE at PADH@Z(ptr ptr long) msvcirt.??0streambuf@@IAE at PADH@Z
 @ cdecl -arch=win64 ??0streambuf@@IEAA at PEADH@Z(ptr ptr long) msvcirt.??0streambuf@@IEAA at PEADH@Z
 @ thiscall -arch=win32 ??0streambuf@@IAE at XZ(ptr) msvcirt.??0streambuf@@IAE at XZ
@@ -178,8 +178,8 @@
 @ cdecl -arch=win64 ??1ostrstream@@UEAA at XZ(ptr) msvcirt.??1ostrstream@@UEAA at XZ
 @ thiscall -arch=win32 ??1stdiobuf@@UAE at XZ(ptr) msvcirt.??1stdiobuf@@UAE at XZ
 @ cdecl -arch=win64 ??1stdiobuf@@UEAA at XZ(ptr) msvcirt.??1stdiobuf@@UEAA at XZ
-@ stub -arch=win32 ??1stdiostream@@UAE at XZ
-@ stub -arch=win64 ??1stdiostream@@UEAA at XZ
+@ thiscall -arch=win32 ??1stdiostream@@UAE at XZ(ptr) msvcirt.??1stdiostream@@UAE at XZ
+@ cdecl -arch=win64 ??1stdiostream@@UEAA at XZ(ptr) msvcirt.??1stdiostream@@UEAA at XZ
 @ thiscall -arch=win32 ??1streambuf@@UAE at XZ(ptr) msvcirt.??1streambuf@@UAE at XZ
 @ cdecl -arch=win64 ??1streambuf@@UEAA at XZ(ptr) msvcirt.??1streambuf@@UEAA at XZ
 @ thiscall -arch=win32 ??1strstream@@UAE at XZ(ptr) msvcirt.??1strstream@@UAE at XZ
@@ -244,8 +244,8 @@
 @ cdecl -arch=win64 ??4ostrstream@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4ostrstream@@QEAAAEAV0 at AEBV0@@Z
 @ thiscall -arch=win32 ??4stdiobuf@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4stdiobuf@@QAEAAV0 at ABV0@@Z
 @ cdecl -arch=win64 ??4stdiobuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4stdiobuf@@QEAAAEAV0 at AEBV0@@Z
-@ stub -arch=win32 ??4stdiostream@@QAEAAV0 at AAV0@@Z
-@ stub -arch=win64 ??4stdiostream@@QEAAAEAV0 at AEAV0@@Z
+@ thiscall -arch=win32 ??4stdiostream@@QAEAAV0 at AAV0@@Z(ptr ptr) msvcirt.??4stdiostream@@QAEAAV0 at AAV0@@Z
+@ cdecl -arch=win64 ??4stdiostream@@QEAAAEAV0 at AEAV0@@Z(ptr ptr) msvcirt.??4stdiostream@@QEAAAEAV0 at AEAV0@@Z
 @ thiscall -arch=win32 ??4streambuf@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4streambuf@@QAEAAV0 at ABV0@@Z
 @ cdecl -arch=win64 ??4streambuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4streambuf@@QEAAAEAV0 at AEBV0@@Z
 @ thiscall -arch=win32 ??4strstream@@QAEAAV0 at AAV0@@Z(ptr ptr) msvcirt.??4strstream@@QAEAAV0 at AAV0@@Z
@@ -352,7 +352,7 @@
 @ extern ??_7ostream_withassign@@6B@ msvcirt.??_7ostream_withassign@@6B@
 @ extern ??_7ostrstream@@6B@ msvcirt.??_7ostrstream@@6B@
 @ extern ??_7stdiobuf@@6B@ msvcirt.??_7stdiobuf@@6B@
-# @ extern ??_7stdiostream@@6B@
+@ extern ??_7stdiostream@@6B@ msvcirt.??_7stdiostream@@6B@
 @ extern ??_7streambuf@@6B@ msvcirt.??_7streambuf@@6B@
 @ extern ??_7strstream@@6B@ msvcirt.??_7strstream@@6B@
 @ extern ??_7strstreambuf@@6B@ msvcirt.??_7strstreambuf@@6B@
@@ -368,8 +368,8 @@
 @ extern ??_8ostream@@7B@ msvcirt.??_8ostream@@7B@
 @ extern ??_8ostream_withassign@@7B@ msvcirt.??_8ostream_withassign@@7B@
 @ extern ??_8ostrstream@@7B@ msvcirt.??_8ostrstream@@7B@
-# @ extern ??_8stdiostream@@7Bistream@@@
-# @ extern ??_8stdiostream@@7Bostream@@@
+@ extern ??_8stdiostream@@7Bistream@@@ msvcirt.??_8stdiostream@@7Bistream@@@
+@ extern ??_8stdiostream@@7Bostream@@@ msvcirt.??_8stdiostream@@7Bostream@@@
 @ extern ??_8strstream@@7Bistream@@@ msvcirt.??_8strstream@@7Bistream@@@
 @ extern ??_8strstream@@7Bostream@@@ msvcirt.??_8strstream@@7Bostream@@@
 @ stub -arch=win32 ??_Dfstream@@QAEXXZ
@@ -392,8 +392,8 @@
 @ cdecl -arch=win64 ??_Dostream_withassign@@QEAAXXZ(ptr) msvcirt.??_Dostream_withassign@@QEAAXXZ
 @ thiscall -arch=win32 ??_Dostrstream@@QAEXXZ(ptr) msvcirt.??_Dostrstream@@QAEXXZ
 @ cdecl -arch=win64 ??_Dostrstream@@QEAAXXZ(ptr) msvcirt.??_Dostrstream@@QEAAXXZ
-@ stub -arch=win32 ??_Dstdiostream@@QAEXXZ
-@ stub -arch=win64 ??_Dstdiostream@@QEAAXXZ
+@ thiscall -arch=win32 ??_Dstdiostream@@QAEXXZ(ptr) msvcirt.??_Dstdiostream@@QAEXXZ
+@ cdecl -arch=win64 ??_Dstdiostream@@QEAAXXZ(ptr) msvcirt.??_Dstdiostream@@QEAAXXZ
 @ thiscall -arch=win32 ??_Dstrstream@@QAEXXZ(ptr) msvcirt.??_Dstrstream@@QAEXXZ
 @ cdecl -arch=win64 ??_Dstrstream@@QEAAXXZ(ptr) msvcirt.??_Dstrstream@@QEAAXXZ
 @ stub -arch=win32 ??_EIostream_init@@QAEPAXI at Z
@@ -415,7 +415,7 @@
 @ thiscall -arch=win32 ??_Eostream_withassign@@UAEPAXI at Z(ptr long) msvcirt.??_Eostream_withassign@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Eostrstream@@UAEPAXI at Z(ptr long) msvcirt.??_Eostrstream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Estdiobuf@@UAEPAXI at Z(ptr long) msvcirt.??_Estdiobuf@@UAEPAXI at Z
-@ stub -arch=win32 ??_Estdiostream@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Estdiostream@@UAEPAXI at Z(ptr long) msvcirt.??_Estdiostream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Estreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Estreambuf@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Estrstream@@UAEPAXI at Z(ptr long) msvcirt.??_Estrstream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Estrstreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Estrstreambuf@@UAEPAXI at Z
@@ -438,7 +438,7 @@
 @ thiscall -arch=win32 ??_Gostream_withassign@@UAEPAXI at Z(ptr long) msvcirt.??_Gostream_withassign@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Gostrstream@@UAEPAXI at Z(ptr long) msvcirt.??_Gostrstream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Gstdiobuf@@UAEPAXI at Z(ptr long) msvcirt.??_Gstdiobuf@@UAEPAXI at Z
-@ stub -arch=win32 ??_Gstdiostream@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Gstdiostream@@UAEPAXI at Z(ptr long) msvcirt.??_Gstdiostream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Gstreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Gstreambuf@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Gstrstream@@UAEPAXI at Z(ptr long) msvcirt.??_Gstrstream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Gstrstreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Gstrstreambuf@@UAEPAXI at Z
@@ -682,8 +682,8 @@
 @ stub -arch=win64 ?rdbuf at ofstream@@QEBAPEAVfilebuf@@XZ
 @ thiscall -arch=win32 ?rdbuf at ostrstream@@QBEPAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf at ostrstream@@QBEPAVstrstreambuf@@XZ
 @ cdecl -arch=win64 ?rdbuf at ostrstream@@QEBAPEAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf at ostrstream@@QEBAPEAVstrstreambuf@@XZ
-@ stub -arch=win32 ?rdbuf at stdiostream@@QBEPAVstdiobuf@@XZ
-@ stub -arch=win64 ?rdbuf at stdiostream@@QEBAPEAVstdiobuf@@XZ
+@ thiscall -arch=win32 ?rdbuf at stdiostream@@QBEPAVstdiobuf@@XZ(ptr) msvcirt.?rdbuf at stdiostream@@QBEPAVstdiobuf@@XZ
+@ cdecl -arch=win64 ?rdbuf at stdiostream@@QEBAPEAVstdiobuf@@XZ(ptr) msvcirt.?rdbuf at stdiostream@@QEBAPEAVstdiobuf@@XZ
 @ thiscall -arch=win32 ?rdbuf at strstream@@QBEPAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf at strstream@@QBEPAVstrstreambuf@@XZ
 @ cdecl -arch=win64 ?rdbuf at strstream@@QEBAPEAVstrstreambuf@@XZ(ptr) msvcirt.?rdbuf at strstream@@QEBAPEAVstrstreambuf@@XZ
 @ thiscall -arch=win32 ?rdstate at ios@@QBEHXZ(ptr) msvcirt.?rdstate at ios@@QBEHXZ
-- 
2.7.4




More information about the wine-patches mailing list