[v2 1/8] msvcirt: Add a partial implementation of class ostream_withassign.

Iván Matellanes matellanesivan at gmail.com
Fri Aug 5 11:56:28 CDT 2016


v2:
 - Add own constructors and vtable for ostream_withassign.
 - Use ostream type for ostream_withassign.

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

diff --git a/dlls/msvcirt/msvcirt.c b/dlls/msvcirt/msvcirt.c
index 9a0a05b..d30112b 100644
--- a/dlls/msvcirt/msvcirt.c
+++ b/dlls/msvcirt/msvcirt.c
@@ -176,6 +176,8 @@ extern const vtable_ptr MSVCP_stdiobuf_vtable;
 extern const vtable_ptr MSVCP_ios_vtable;
 /* ??_7ostream@@6B@ */
 extern const vtable_ptr MSVCP_ostream_vtable;
+/* ??_7ostream_withassign@@6B@ */
+extern const vtable_ptr MSVCP_ostream_withassign_vtable;
 /* ??_7istream@@6B@ */
 extern const vtable_ptr MSVCP_istream_vtable;
 
@@ -234,6 +236,8 @@ void __asm_dummy_vtables(void) {
             VTABLE_ADD_FUNC(ios_vector_dtor));
     __ASM_VTABLE(ostream,
             VTABLE_ADD_FUNC(ostream_vector_dtor));
+    __ASM_VTABLE(ostream_withassign,
+            VTABLE_ADD_FUNC(ostream_vector_dtor));
     __ASM_VTABLE(istream,
             VTABLE_ADD_FUNC(istream_vector_dtor));
 #ifndef __GNUC__
@@ -244,6 +248,7 @@ void __asm_dummy_vtables(void) {
 #define VBTABLE_ENTRY(class, offset, vbase) ALIGNED_SIZE(sizeof(class), TYPE_ALIGNMENT(vbase))-offset
 
 /* ??_8ostream@@7B@ */
+/* ??_8ostream_withassign@@7B@ */
 const int ostream_vbtable[] = {0, VBTABLE_ENTRY(ostream, FIELD_OFFSET(ostream, vbtable), ios)};
 /* ??_8istream@@7B@ */
 const int istream_vbtable[] = {0, VBTABLE_ENTRY(istream, FIELD_OFFSET(istream, vbtable), ios)};
@@ -254,6 +259,8 @@ DEFINE_RTTI_DATA1(strstreambuf, 0, &streambuf_rtti_base_descriptor, ".?AVstrstre
 DEFINE_RTTI_DATA1(stdiobuf, 0, &streambuf_rtti_base_descriptor, ".?AVstdiobuf@@")
 DEFINE_RTTI_DATA0(ios, 0, ".?AVios@@")
 DEFINE_RTTI_DATA1(ostream, sizeof(ostream), &ios_rtti_base_descriptor, ".?AVostream@@")
+DEFINE_RTTI_DATA2(ostream_withassign, sizeof(ostream),
+    &ostream_rtti_base_descriptor, &ios_rtti_base_descriptor, ".?AVostream_withassign@@")
 DEFINE_RTTI_DATA1(istream, sizeof(istream), &ios_rtti_base_descriptor, ".?AVistream@@")
 
 /* ??0streambuf@@IAE at PADH@Z */
@@ -2316,6 +2323,8 @@ ostream* __thiscall ostream_ctor(ostream *this, BOOL virt_init)
 
 /* ??1ostream@@UAE at XZ */
 /* ??1ostream@@UEAA at XZ */
+/* ??1ostream_withassign@@UAE at XZ */
+/* ??1ostream_withassign@@UEAA at XZ */
 DEFINE_THISCALL_WRAPPER(ostream_dtor, 4)
 void __thiscall ostream_dtor(ios *base)
 {
@@ -2326,6 +2335,8 @@ void __thiscall ostream_dtor(ios *base)
 
 /* ??4ostream@@IAEAAV0 at PAVstreambuf@@@Z */
 /* ??4ostream@@IEAAAEAV0 at PEAVstreambuf@@@Z */
+/* ??4ostream_withassign@@QAEAAVostream@@PAVstreambuf@@@Z */
+/* ??4ostream_withassign@@QEAAAEAVostream@@PEAVstreambuf@@@Z */
 DEFINE_THISCALL_WRAPPER(ostream_assign_sb, 8)
 ostream* __thiscall ostream_assign_sb(ostream *this, streambuf *sb)
 {
@@ -2346,6 +2357,10 @@ ostream* __thiscall ostream_assign_sb(ostream *this, streambuf *sb)
 
 /* ??4ostream@@IAEAAV0 at ABV0@@Z */
 /* ??4ostream@@IEAAAEAV0 at AEBV0@@Z */
+/* ??4ostream_withassign@@QAEAAV0 at ABV0@@Z */
+/* ??4ostream_withassign@@QEAAAEAV0 at AEBV0@@Z */
+/* ??4ostream_withassign@@QAEAAVostream@@ABV1@@Z */
+/* ??4ostream_withassign@@QEAAAEAVostream@@AEBV1@@Z */
 DEFINE_THISCALL_WRAPPER(ostream_assign, 8)
 ostream* __thiscall ostream_assign(ostream *this, const ostream *rhs)
 {
@@ -2358,6 +2373,8 @@ ostream* __thiscall ostream_assign(ostream *this, const ostream *rhs)
 
 /* ??_Dostream@@QAEXXZ */
 /* ??_Dostream@@QEAAXXZ */
+/* ??_Dostream_withassign@@QAEXXZ */
+/* ??_Dostream_withassign@@QEAAXXZ */
 DEFINE_THISCALL_WRAPPER(ostream_vbase_dtor, 4)
 void __thiscall ostream_vbase_dtor(ostream *this)
 {
@@ -2370,6 +2387,7 @@ void __thiscall ostream_vbase_dtor(ostream *this)
 }
 
 /* ??_Eostream@@UAEPAXI at Z */
+/* ??_Eostream_withassign@@UAEPAXI at Z */
 DEFINE_THISCALL_WRAPPER(ostream_vector_dtor, 8)
 ostream* __thiscall ostream_vector_dtor(ios *base, unsigned int flags)
 {
@@ -2393,6 +2411,7 @@ ostream* __thiscall ostream_vector_dtor(ios *base, unsigned int flags)
 }
 
 /* ??_Gostream@@UAEPAXI at Z */
+/* ??_Gostream_withassign@@UAEPAXI at Z */
 DEFINE_THISCALL_WRAPPER(ostream_scalar_dtor, 8)
 ostream* __thiscall ostream_scalar_dtor(ios *base, unsigned int flags)
 {
@@ -2845,6 +2864,33 @@ ostream* __cdecl ostream_flush_manip(ostream *this)
    return ostream_flush(this);
 }
 
+/* ??0ostream_withassign@@QAE at ABV0@@Z */
+/* ??0ostream_withassign@@QEAA at AEBV0@@Z */
+DEFINE_THISCALL_WRAPPER(ostream_withassign_copy_ctor, 12)
+ostream* __thiscall ostream_withassign_copy_ctor(ostream *this, const ostream *copy, BOOL virt_init)
+{
+    FIXME("(%p %p %d) stub\n", this, copy, virt_init);
+    return this;
+}
+
+/* ??0ostream_withassign@@QAE at PAVstreambuf@@@Z */
+/* ??0ostream_withassign@@QEAA at PEAVstreambuf@@@Z */
+DEFINE_THISCALL_WRAPPER(ostream_withassign_sb_ctor, 12)
+ostream* __thiscall ostream_withassign_sb_ctor(ostream *this, streambuf *sb, BOOL virt_init)
+{
+    FIXME("(%p %p %d) stub\n", this, sb, virt_init);
+    return this;
+}
+
+/* ??0ostream_withassign@@QAE at XZ */
+/* ??0ostream_withassign@@QEAA at XZ */
+DEFINE_THISCALL_WRAPPER(ostream_withassign_ctor, 8)
+ostream* __thiscall ostream_withassign_ctor(ostream *this, BOOL virt_init)
+{
+    FIXME("(%p %d) stub\n", this, virt_init);
+    return this;
+}
+
 static inline ios* istream_get_ios(const istream *this)
 {
     return (ios*)((char*)this + this->vbtable[1]);
@@ -3841,6 +3887,7 @@ static void init_io(void *base)
     init_stdiobuf_rtti(base);
     init_ios_rtti(base);
     init_ostream_rtti(base);
+    init_ostream_withassign_rtti(base);
     init_istream_rtti(base);
 #endif
 }
diff --git a/dlls/msvcirt/msvcirt.spec b/dlls/msvcirt/msvcirt.spec
index 6b3b181..67c3028 100644
--- a/dlls/msvcirt/msvcirt.spec
+++ b/dlls/msvcirt/msvcirt.spec
@@ -86,12 +86,12 @@
 @ cdecl -arch=win64 ??0ostream@@IEAA at XZ(ptr long) ostream_ctor
 @ thiscall -arch=win32 ??0ostream@@QAE at PAVstreambuf@@@Z(ptr ptr long) ostream_sb_ctor
 @ cdecl -arch=win64 ??0ostream@@QEAA at PEAVstreambuf@@@Z(ptr ptr long) ostream_sb_ctor
-@ stub -arch=win32 ??0ostream_withassign@@QAE at ABV0@@Z  # __thiscall ostream_withassign::ostream_withassign(class ostream_withassign const &)
-@ stub -arch=win64 ??0ostream_withassign@@QEAA at AEBV0@@Z
-@ stub -arch=win32 ??0ostream_withassign@@QAE at PAVstreambuf@@@Z  # __thiscall ostream_withassign::ostream_withassign(class streambuf *)
-@ stub -arch=win64 ??0ostream_withassign@@QEAA at PEAVstreambuf@@@Z
-@ stub -arch=win32 ??0ostream_withassign@@QAE at XZ  # __thiscall ostream_withassign::ostream_withassign(void)
-@ stub -arch=win64 ??0ostream_withassign@@QEAA at XZ
+@ thiscall -arch=win32 ??0ostream_withassign@@QAE at ABV0@@Z(ptr ptr long) ostream_withassign_copy_ctor
+@ cdecl -arch=win64 ??0ostream_withassign@@QEAA at AEBV0@@Z(ptr ptr long) ostream_withassign_copy_ctor
+@ thiscall -arch=win32 ??0ostream_withassign@@QAE at PAVstreambuf@@@Z(ptr ptr long) ostream_withassign_sb_ctor
+@ cdecl -arch=win64 ??0ostream_withassign@@QEAA at PEAVstreambuf@@@Z(ptr ptr long) ostream_withassign_sb_ctor
+@ thiscall -arch=win32 ??0ostream_withassign@@QAE at XZ(ptr long) ostream_withassign_ctor
+@ cdecl -arch=win64 ??0ostream_withassign@@QEAA at XZ(ptr long) ostream_withassign_ctor
 @ stub -arch=win32 ??0ostrstream@@QAE at ABV0@@Z  # __thiscall ostrstream::ostrstream(class ostrstream const &)
 @ stub -arch=win64 ??0ostrstream@@QEAA at AEBV0@@Z
 @ stub -arch=win32 ??0ostrstream@@QAE at PADHH@Z  # __thiscall ostrstream::ostrstream(char *,int,int)
@@ -156,8 +156,8 @@
 @ stub -arch=win64 ??1ofstream@@UEAA at XZ
 @ thiscall -arch=win32 ??1ostream@@UAE at XZ(ptr) ostream_dtor
 @ cdecl -arch=win64 ??1ostream@@UEAA at XZ(ptr) ostream_dtor
-@ stub -arch=win32 ??1ostream_withassign@@UAE at XZ  # virtual __thiscall ostream_withassign::~ostream_withassign(void)
-@ stub -arch=win64 ??1ostream_withassign@@UEAA at XZ
+@ thiscall -arch=win32 ??1ostream_withassign@@UAE at XZ(ptr) ostream_dtor
+@ cdecl -arch=win64 ??1ostream_withassign@@UEAA at XZ(ptr) ostream_dtor
 @ thiscall -arch=win32 ??1ostrstream@@UAE at XZ(ptr) MSVCIRT_ostrstream_dtor
 @ cdecl -arch=win64 ??1ostrstream@@UEAA at XZ(ptr) MSVCIRT_ostrstream_dtor
 @ thiscall -arch=win32 ??1stdiobuf@@UAE at XZ(ptr) stdiobuf_dtor
@@ -206,12 +206,12 @@
 @ cdecl -arch=win64 ??4ostream@@IEAAAEAV0 at AEBV0@@Z(ptr ptr) ostream_assign
 @ thiscall -arch=win32 ??4ostream@@IAEAAV0 at PAVstreambuf@@@Z(ptr ptr) ostream_assign_sb
 @ cdecl -arch=win64 ??4ostream@@IEAAAEAV0 at PEAVstreambuf@@@Z(ptr ptr) ostream_assign_sb
-@ stub -arch=win32 ??4ostream_withassign@@QAEAAV0 at ABV0@@Z  # class ostream_withassign & __thiscall ostream_withassign::operator=(class ostream_withassign const &)
-@ stub -arch=win64 ??4ostream_withassign@@QEAAAEAV0 at AEBV0@@Z
-@ stub -arch=win32 ??4ostream_withassign@@QAEAAVostream@@ABV1@@Z  # class ostream & __thiscall ostream_withassign::operator=(class ostream const &)
-@ stub -arch=win64 ??4ostream_withassign@@QEAAAEAVostream@@AEBV1@@Z
-@ stub -arch=win32 ??4ostream_withassign@@QAEAAVostream@@PAVstreambuf@@@Z  # class ostream & __thiscall ostream_withassign::operator=(class streambuf *)
-@ stub -arch=win64 ??4ostream_withassign@@QEAAAEAVostream@@PEAVstreambuf@@@Z
+@ thiscall -arch=win32 ??4ostream_withassign@@QAEAAV0 at ABV0@@Z(ptr ptr) ostream_assign
+@ cdecl -arch=win64 ??4ostream_withassign@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) ostream_assign
+@ thiscall -arch=win32 ??4ostream_withassign@@QAEAAVostream@@ABV1@@Z(ptr ptr) ostream_assign
+@ cdecl -arch=win64 ??4ostream_withassign@@QEAAAEAVostream@@AEBV1@@Z(ptr ptr) ostream_assign
+@ thiscall -arch=win32 ??4ostream_withassign@@QAEAAVostream@@PAVstreambuf@@@Z(ptr ptr) ostream_assign_sb
+@ cdecl -arch=win64 ??4ostream_withassign@@QEAAAEAVostream@@PEAVstreambuf@@@Z(ptr ptr) ostream_assign_sb
 @ stub -arch=win32 ??4ostrstream@@QAEAAV0 at ABV0@@Z  # class ostrstream & __thiscall ostrstream::operator=(class ostrstream const &)
 @ stub -arch=win64 ??4ostrstream@@QEAAAEAV0 at AEBV0@@Z
 @ thiscall -arch=win32 ??4stdiobuf@@QAEAAV0 at ABV0@@Z(ptr ptr) stdiobuf_assign
@@ -314,7 +314,7 @@
 @ extern ??_7logic_error@@6B@ MSVCP_logic_error_vtable
 # @ extern ??_7ofstream@@6B@  # const ofstream::`vftable'
 @ extern ??_7ostream@@6B@ MSVCP_ostream_vtable
-# @ extern ??_7ostream_withassign@@6B@  # const ostream_withassign::`vftable'
+@ extern ??_7ostream_withassign@@6B@ MSVCP_ostream_withassign_vtable
 # @ extern ??_7ostrstream@@6B@  # const ostrstream::`vftable'
 @ extern ??_7stdiobuf@@6B@ MSVCP_stdiobuf_vtable
 # @ extern ??_7stdiostream@@6B@  # const stdiostream::`vftable'
@@ -331,7 +331,7 @@
 # @ extern ??_8istrstream@@7B@  # const istrstream::`vbtable'
 # @ extern ??_8ofstream@@7B@  # const ofstream::`vbtable'
 @ extern ??_8ostream@@7B@ ostream_vbtable
-# @ extern ??_8ostream_withassign@@7B@  # const ostream_withassign::`vbtable'
+@ extern ??_8ostream_withassign@@7B@ ostream_vbtable
 # @ extern ??_8ostrstream@@7B@  # const ostrstream::`vbtable'
 # @ extern ??_8stdiostream@@7Bistream@@@  # const stdiostream::`vbtable'{for `istream'}
 # @ extern ??_8stdiostream@@7Bostream@@@  # const stdiostream::`vbtable'{for `ostream'}
@@ -353,8 +353,8 @@
 @ stub -arch=win64 ??_Dofstream@@QEAAXXZ
 @ thiscall -arch=win32 ??_Dostream@@QAEXXZ(ptr) ostream_vbase_dtor
 @ cdecl -arch=win64 ??_Dostream@@QEAAXXZ(ptr) ostream_vbase_dtor
-@ stub -arch=win32 ??_Dostream_withassign@@QAEXXZ  # void __thiscall ostream_withassign::`vbase destructor'(void)
-@ stub -arch=win64 ??_Dostream_withassign@@QEAAXXZ
+@ thiscall -arch=win32 ??_Dostream_withassign@@QAEXXZ(ptr) ostream_vbase_dtor
+@ cdecl -arch=win64 ??_Dostream_withassign@@QEAAXXZ(ptr) ostream_vbase_dtor
 @ stub -arch=win32 ??_Dostrstream@@QAEXXZ  # void __thiscall ostrstream::`vbase destructor'(void)
 @ stub -arch=win64 ??_Dostrstream@@QEAAXXZ
 @ stub -arch=win32 ??_Dstdiostream@@QAEXXZ  # void __thiscall stdiostream::`vbase destructor'(void)
@@ -373,7 +373,7 @@
 @ thiscall -arch=win32 ??_Elogic_error@@UAEPAXI at Z(ptr long) MSVCP_logic_error_vector_dtor
 @ stub -arch=win32 ??_Eofstream@@UAEPAXI at Z  # virtual void * __thiscall ofstream::`vector deleting destructor'(unsigned int)
 @ thiscall -arch=win32 ??_Eostream@@UAEPAXI at Z(ptr long) ostream_vector_dtor
-@ stub -arch=win32 ??_Eostream_withassign@@UAEPAXI at Z  # virtual void * __thiscall ostream_withassign::`vector deleting destructor'(unsigned int)
+@ thiscall -arch=win32 ??_Eostream_withassign@@UAEPAXI at Z(ptr long) ostream_vector_dtor
 @ stub -arch=win32 ??_Eostrstream@@UAEPAXI at Z  # virtual void * __thiscall ostrstream::`vector deleting destructor'(unsigned int)
 @ 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)
@@ -392,7 +392,7 @@
 @ thiscall -arch=win32 ??_Glogic_error@@UAEPAXI at Z(ptr long) MSVCP_logic_error_scalar_dtor
 @ stub -arch=win32 ??_Gofstream@@UAEPAXI at Z  # virtual void * __thiscall ofstream::`scalar deleting destructor'(unsigned int)
 @ thiscall -arch=win32 ??_Gostream@@UAEPAXI at Z(ptr long) ostream_scalar_dtor
-@ stub -arch=win32 ??_Gostream_withassign@@UAEPAXI at Z  # virtual void * __thiscall ostream_withassign::`scalar deleting destructor'(unsigned int)
+@ thiscall -arch=win32 ??_Gostream_withassign@@UAEPAXI at Z(ptr long) ostream_scalar_dtor
 @ stub -arch=win32 ??_Gostrstream@@UAEPAXI at Z  # virtual void * __thiscall ostrstream::`scalar deleting destructor'(unsigned int)
 @ 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)
diff --git a/dlls/msvcrt20/msvcrt20.spec b/dlls/msvcrt20/msvcrt20.spec
index 10fae8f..ff4ed73 100644
--- a/dlls/msvcrt20/msvcrt20.spec
+++ b/dlls/msvcrt20/msvcrt20.spec
@@ -76,12 +76,12 @@
 @ cdecl -arch=win64 ??0ostream@@IEAA at XZ(ptr long) msvcirt.??0ostream@@IEAA at XZ
 @ thiscall -arch=win32 ??0ostream@@QAE at PAVstreambuf@@@Z(ptr ptr long) msvcirt.??0ostream@@QAE at PAVstreambuf@@@Z
 @ cdecl -arch=win64 ??0ostream@@QEAA at PEAVstreambuf@@@Z(ptr ptr long) msvcirt.??0ostream@@QEAA at PEAVstreambuf@@@Z
-@ stub -arch=win32 ??0ostream_withassign@@QAE at ABV0@@Z
-@ stub -arch=win64 ??0ostream_withassign@@QEAA at AEBV0@@Z
-@ stub -arch=win32 ??0ostream_withassign@@QAE at PAVstreambuf@@@Z
-@ stub -arch=win64 ??0ostream_withassign@@QEAA at PEAVstreambuf@@@Z
-@ stub -arch=win32 ??0ostream_withassign@@QAE at XZ
-@ stub -arch=win64 ??0ostream_withassign@@QEAA at XZ
+@ thiscall -arch=win32 ??0ostream_withassign@@QAE at ABV0@@Z(ptr ptr long) msvcirt.??0ostream_withassign@@QAE at ABV0@@Z
+@ cdecl -arch=win64 ??0ostream_withassign@@QEAA at AEBV0@@Z(ptr ptr long) msvcirt.??0ostream_withassign@@QEAA at AEBV0@@Z
+@ thiscall -arch=win32 ??0ostream_withassign@@QAE at PAVstreambuf@@@Z(ptr ptr long) msvcirt.??0ostream_withassign@@QAE at PAVstreambuf@@@Z
+@ cdecl -arch=win64 ??0ostream_withassign@@QEAA at PEAVstreambuf@@@Z(ptr ptr long) msvcirt.??0ostream_withassign@@QEAA at PEAVstreambuf@@@Z
+@ thiscall -arch=win32 ??0ostream_withassign@@QAE at XZ(ptr long) msvcirt.??0ostream_withassign@@QAE at XZ
+@ cdecl -arch=win64 ??0ostream_withassign@@QEAA at XZ(ptr long) msvcirt.??0ostream_withassign@@QEAA at XZ
 @ stub -arch=win32 ??0ostrstream@@QAE at ABV0@@Z
 @ stub -arch=win64 ??0ostrstream@@QEAA at AEBV0@@Z
 @ stub -arch=win32 ??0ostrstream@@QAE at PADHH@Z
@@ -140,8 +140,8 @@
 @ stub -arch=win64 ??1ofstream@@UEAA at XZ
 @ thiscall -arch=win32 ??1ostream@@UAE at XZ(ptr) msvcirt.??1ostream@@UAE at XZ
 @ cdecl -arch=win64 ??1ostream@@UEAA at XZ(ptr) msvcirt.??1ostream@@UEAA at XZ
-@ stub -arch=win32 ??1ostream_withassign@@UAE at XZ
-@ stub -arch=win64 ??1ostream_withassign@@UEAA at XZ
+@ thiscall -arch=win32 ??1ostream_withassign@@UAE at XZ(ptr) msvcirt.??1ostream_withassign@@UAE at XZ
+@ cdecl -arch=win64 ??1ostream_withassign@@UEAA at XZ(ptr) msvcirt.??1ostream_withassign@@UEAA at XZ
 @ thiscall -arch=win32 ??1ostrstream@@UAE at XZ(ptr) msvcirt.??1ostrstream@@UAE at XZ
 @ 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
@@ -190,12 +190,12 @@
 @ cdecl -arch=win64 ??4ostream@@IEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4ostream@@IEAAAEAV0 at AEBV0@@Z
 @ thiscall -arch=win32 ??4ostream@@IAEAAV0 at PAVstreambuf@@@Z(ptr ptr) msvcirt.??4ostream@@IAEAAV0 at PAVstreambuf@@@Z
 @ cdecl -arch=win64 ??4ostream@@IEAAAEAV0 at PEAVstreambuf@@@Z(ptr ptr) msvcirt.??4ostream@@IEAAAEAV0 at PEAVstreambuf@@@Z
-@ stub -arch=win32 ??4ostream_withassign@@QAEAAV0 at ABV0@@Z
-@ stub -arch=win64 ??4ostream_withassign@@QEAAAEAV0 at AEBV0@@Z
-@ stub -arch=win32 ??4ostream_withassign@@QAEAAVostream@@ABV1@@Z
-@ stub -arch=win64 ??4ostream_withassign@@QEAAAEAVostream@@AEBV1@@Z
-@ stub -arch=win32 ??4ostream_withassign@@QAEAAVostream@@PAVstreambuf@@@Z
-@ stub -arch=win64 ??4ostream_withassign@@QEAAAEAVostream@@PEAVstreambuf@@@Z
+@ thiscall -arch=win32 ??4ostream_withassign@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4ostream_withassign@@QAEAAV0 at ABV0@@Z
+@ cdecl -arch=win64 ??4ostream_withassign@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4ostream_withassign@@QEAAAEAV0 at AEBV0@@Z
+@ thiscall -arch=win32 ??4ostream_withassign@@QAEAAVostream@@ABV1@@Z(ptr ptr) msvcirt.??4ostream_withassign@@QAEAAVostream@@ABV1@@Z
+@ cdecl -arch=win64 ??4ostream_withassign@@QEAAAEAVostream@@AEBV1@@Z(ptr ptr) msvcirt.??4ostream_withassign@@QEAAAEAVostream@@AEBV1@@Z
+@ thiscall -arch=win32 ??4ostream_withassign@@QAEAAVostream@@PAVstreambuf@@@Z(ptr ptr) msvcirt.??4ostream_withassign@@QAEAAVostream@@PAVstreambuf@@@Z
+@ cdecl -arch=win64 ??4ostream_withassign@@QEAAAEAVostream@@PEAVstreambuf@@@Z(ptr ptr) msvcirt.??4ostream_withassign@@QEAAAEAVostream@@PEAVstreambuf@@@Z
 @ stub -arch=win32 ??4ostrstream@@QAEAAV0 at ABV0@@Z
 @ stub -arch=win64 ??4ostrstream@@QEAAAEAV0 at AEBV0@@Z
 @ thiscall -arch=win32 ??4stdiobuf@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4stdiobuf@@QAEAAV0 at ABV0@@Z
@@ -296,7 +296,7 @@
 # @ extern ??_7istrstream@@6B@
 # @ extern ??_7ofstream@@6B@
 @ extern ??_7ostream@@6B@ msvcirt.??_7ostream@@6B@
-# @ extern ??_7ostream_withassign@@6B@
+@ extern ??_7ostream_withassign@@6B@ msvcirt.??_7ostream_withassign@@6B@
 # @ extern ??_7ostrstream@@6B@
 @ extern ??_7stdiobuf@@6B@ msvcirt.??_7stdiobuf@@6B@
 # @ extern ??_7stdiostream@@6B@
@@ -313,7 +313,7 @@
 # @ extern ??_8istrstream@@7B@
 # @ extern ??_8ofstream@@7B@
 @ extern ??_8ostream@@7B@ msvcirt.??_8ostream@@7B@
-# @ extern ??_8ostream_withassign@@7B@
+@ extern ??_8ostream_withassign@@7B@ msvcirt.??_8ostream_withassign@@7B@
 # @ extern ??_8ostrstream@@7B@
 # @ extern ??_8stdiostream@@7Bistream@@@
 # @ extern ??_8stdiostream@@7Bostream@@@
@@ -335,8 +335,8 @@
 @ stub -arch=win64 ??_Dofstream@@QEAAXXZ
 @ thiscall -arch=win32 ??_Dostream@@QAEXXZ(ptr) msvcirt.??_Dostream@@QAEXXZ
 @ cdecl -arch=win64 ??_Dostream@@QEAAXXZ(ptr) msvcirt.??_Dostream@@QEAAXXZ
-@ stub -arch=win32 ??_Dostream_withassign@@QAEXXZ
-@ stub -arch=win64 ??_Dostream_withassign@@QEAAXXZ
+@ thiscall -arch=win32 ??_Dostream_withassign@@QAEXXZ(ptr) msvcirt.??_Dostream_withassign@@QAEXXZ
+@ cdecl -arch=win64 ??_Dostream_withassign@@QEAAXXZ(ptr) msvcirt.??_Dostream_withassign@@QEAAXXZ
 @ stub -arch=win32 ??_Dostrstream@@QAEXXZ
 @ stub -arch=win64 ??_Dostrstream@@QEAAXXZ
 @ stub -arch=win32 ??_Dstdiostream@@QAEXXZ
@@ -354,7 +354,7 @@
 @ stub -arch=win32 ??_Eistrstream@@UAEPAXI at Z
 @ stub -arch=win32 ??_Eofstream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Eostream@@UAEPAXI at Z(ptr long) msvcirt.??_Eostream@@UAEPAXI at Z
-@ stub -arch=win32 ??_Eostream_withassign@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Eostream_withassign@@UAEPAXI at Z(ptr long) msvcirt.??_Eostream_withassign@@UAEPAXI at Z
 @ stub -arch=win32 ??_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
@@ -372,7 +372,7 @@
 @ stub -arch=win32 ??_Gistrstream@@UAEPAXI at Z
 @ stub -arch=win32 ??_Gofstream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Gostream@@UAEPAXI at Z(ptr long) msvcirt.??_Gostream@@UAEPAXI at Z
-@ stub -arch=win32 ??_Gostream_withassign@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Gostream_withassign@@UAEPAXI at Z(ptr long) msvcirt.??_Gostream_withassign@@UAEPAXI at Z
 @ stub -arch=win32 ??_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
diff --git a/dlls/msvcrt40/msvcrt40.spec b/dlls/msvcrt40/msvcrt40.spec
index 4883423..fc9a5dc 100644
--- a/dlls/msvcrt40/msvcrt40.spec
+++ b/dlls/msvcrt40/msvcrt40.spec
@@ -98,12 +98,12 @@
 @ cdecl -arch=win64 ??0ostream@@IEAA at XZ(ptr long) msvcirt.??0ostream@@IEAA at XZ
 @ thiscall -arch=win32 ??0ostream@@QAE at PAVstreambuf@@@Z(ptr ptr long) msvcirt.??0ostream@@QAE at PAVstreambuf@@@Z
 @ cdecl -arch=win64 ??0ostream@@QEAA at PEAVstreambuf@@@Z(ptr ptr long) msvcirt.??0ostream@@QEAA at PEAVstreambuf@@@Z
-@ stub -arch=win32 ??0ostream_withassign@@QAE at ABV0@@Z
-@ stub -arch=win64 ??0ostream_withassign@@QEAA at AEBV0@@Z
-@ stub -arch=win32 ??0ostream_withassign@@QAE at PAVstreambuf@@@Z
-@ stub -arch=win64 ??0ostream_withassign@@QEAA at PEAVstreambuf@@@Z
-@ stub -arch=win32 ??0ostream_withassign@@QAE at XZ
-@ stub -arch=win64 ??0ostream_withassign@@QEAA at XZ
+@ thiscall -arch=win32 ??0ostream_withassign@@QAE at ABV0@@Z(ptr ptr long) msvcirt.??0ostream_withassign@@QAE at ABV0@@Z
+@ cdecl -arch=win64 ??0ostream_withassign@@QEAA at AEBV0@@Z(ptr ptr long) msvcirt.??0ostream_withassign@@QEAA at AEBV0@@Z
+@ thiscall -arch=win32 ??0ostream_withassign@@QAE at PAVstreambuf@@@Z(ptr ptr long) msvcirt.??0ostream_withassign@@QAE at PAVstreambuf@@@Z
+@ cdecl -arch=win64 ??0ostream_withassign@@QEAA at PEAVstreambuf@@@Z(ptr ptr long) msvcirt.??0ostream_withassign@@QEAA at PEAVstreambuf@@@Z
+@ thiscall -arch=win32 ??0ostream_withassign@@QAE at XZ(ptr long) msvcirt.??0ostream_withassign@@QAE at XZ
+@ cdecl -arch=win64 ??0ostream_withassign@@QEAA at XZ(ptr long) msvcirt.??0ostream_withassign@@QEAA at XZ
 @ stub -arch=win32 ??0ostrstream@@QAE at ABV0@@Z
 @ stub -arch=win64 ??0ostrstream@@QEAA at AEBV0@@Z
 @ stub -arch=win32 ??0ostrstream@@QAE at PADHH@Z
@@ -172,8 +172,8 @@
 @ stub -arch=win64 ??1ofstream@@UEAA at XZ
 @ thiscall -arch=win32 ??1ostream@@UAE at XZ(ptr) msvcirt.??1ostream@@UAE at XZ
 @ cdecl -arch=win64 ??1ostream@@UEAA at XZ(ptr) msvcirt.??1ostream@@UEAA at XZ
-@ stub -arch=win32 ??1ostream_withassign@@UAE at XZ
-@ stub -arch=win64 ??1ostream_withassign@@UEAA at XZ
+@ thiscall -arch=win32 ??1ostream_withassign@@UAE at XZ(ptr) msvcirt.??1ostream_withassign@@UAE at XZ
+@ cdecl -arch=win64 ??1ostream_withassign@@UEAA at XZ(ptr) msvcirt.??1ostream_withassign@@UEAA at XZ
 @ thiscall -arch=win32 ??1ostrstream@@UAE at XZ(ptr) msvcirt.??1ostrstream@@UAE at XZ
 @ 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
@@ -234,12 +234,12 @@
 @ cdecl -arch=win64 ??4ostream@@IEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4ostream@@IEAAAEAV0 at AEBV0@@Z
 @ thiscall -arch=win32 ??4ostream@@IAEAAV0 at PAVstreambuf@@@Z(ptr ptr) msvcirt.??4ostream@@IAEAAV0 at PAVstreambuf@@@Z
 @ cdecl -arch=win64 ??4ostream@@IEAAAEAV0 at PEAVstreambuf@@@Z(ptr ptr) msvcirt.??4ostream@@IEAAAEAV0 at PEAVstreambuf@@@Z
-@ stub -arch=win32 ??4ostream_withassign@@QAEAAV0 at ABV0@@Z
-@ stub -arch=win64 ??4ostream_withassign@@QEAAAEAV0 at AEBV0@@Z
-@ stub -arch=win32 ??4ostream_withassign@@QAEAAVostream@@ABV1@@Z
-@ stub -arch=win64 ??4ostream_withassign@@QEAAAEAVostream@@AEBV1@@Z
-@ stub -arch=win32 ??4ostream_withassign@@QAEAAVostream@@PAVstreambuf@@@Z
-@ stub -arch=win64 ??4ostream_withassign@@QEAAAEAVostream@@PEAVstreambuf@@@Z
+@ thiscall -arch=win32 ??4ostream_withassign@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4ostream_withassign@@QAEAAV0 at ABV0@@Z
+@ cdecl -arch=win64 ??4ostream_withassign@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4ostream_withassign@@QEAAAEAV0 at AEBV0@@Z
+@ thiscall -arch=win32 ??4ostream_withassign@@QAEAAVostream@@ABV1@@Z(ptr ptr) msvcirt.??4ostream_withassign@@QAEAAVostream@@ABV1@@Z
+@ cdecl -arch=win64 ??4ostream_withassign@@QEAAAEAVostream@@AEBV1@@Z(ptr ptr) msvcirt.??4ostream_withassign@@QEAAAEAVostream@@AEBV1@@Z
+@ thiscall -arch=win32 ??4ostream_withassign@@QAEAAVostream@@PAVstreambuf@@@Z(ptr ptr) msvcirt.??4ostream_withassign@@QAEAAVostream@@PAVstreambuf@@@Z
+@ cdecl -arch=win64 ??4ostream_withassign@@QEAAAEAVostream@@PEAVstreambuf@@@Z(ptr ptr) msvcirt.??4ostream_withassign@@QEAAAEAVostream@@PEAVstreambuf@@@Z
 @ stub -arch=win32 ??4ostrstream@@QAEAAV0 at ABV0@@Z
 @ stub -arch=win64 ??4ostrstream@@QEAAAEAV0 at AEBV0@@Z
 @ thiscall -arch=win32 ??4stdiobuf@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4stdiobuf@@QAEAAV0 at ABV0@@Z
@@ -349,7 +349,7 @@
 @ extern ??_7logic_error@@6B@ msvcirt.??_7logic_error@@6B@
 # @ extern ??_7ofstream@@6B@
 @ extern ??_7ostream@@6B@ msvcirt.??_7ostream@@6B@
-# @ extern ??_7ostream_withassign@@6B@
+@ extern ??_7ostream_withassign@@6B@ msvcirt.??_7ostream_withassign@@6B@
 # @ extern ??_7ostrstream@@6B@
 @ extern ??_7stdiobuf@@6B@ msvcirt.??_7stdiobuf@@6B@
 # @ extern ??_7stdiostream@@6B@
@@ -366,7 +366,7 @@
 # @ extern ??_8istrstream@@7B@
 # @ extern ??_8ofstream@@7B@
 @ extern ??_8ostream@@7B@ msvcirt.??_8ostream@@7B@
-# @ extern ??_8ostream_withassign@@7B@
+@ extern ??_8ostream_withassign@@7B@ msvcirt.??_8ostream_withassign@@7B@
 # @ extern ??_8ostrstream@@7B@
 # @ extern ??_8stdiostream@@7Bistream@@@
 # @ extern ??_8stdiostream@@7Bostream@@@
@@ -388,8 +388,8 @@
 @ stub -arch=win64 ??_Dofstream@@QEAAXXZ
 @ thiscall -arch=win32 ??_Dostream@@QAEXXZ(ptr) msvcirt.??_Dostream@@QAEXXZ
 @ cdecl -arch=win64 ??_Dostream@@QEAAXXZ(ptr) msvcirt.??_Dostream@@QEAAXXZ
-@ stub -arch=win32 ??_Dostream_withassign@@QAEXXZ
-@ stub -arch=win64 ??_Dostream_withassign@@QEAAXXZ
+@ thiscall -arch=win32 ??_Dostream_withassign@@QAEXXZ(ptr) msvcirt.??_Dostream_withassign@@QAEXXZ
+@ cdecl -arch=win64 ??_Dostream_withassign@@QEAAXXZ(ptr) msvcirt.??_Dostream_withassign@@QEAAXXZ
 @ stub -arch=win32 ??_Dostrstream@@QAEXXZ
 @ stub -arch=win64 ??_Dostrstream@@QEAAXXZ
 @ stub -arch=win32 ??_Dstdiostream@@QAEXXZ
@@ -412,7 +412,7 @@
 @ thiscall -arch=win32 ??_Elogic_error@@UAEPAXI at Z(ptr long) msvcirt.??_Elogic_error@@UAEPAXI at Z
 @ stub -arch=win32 ??_Eofstream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Eostream@@UAEPAXI at Z(ptr long) msvcirt.??_Eostream@@UAEPAXI at Z
-@ stub -arch=win32 ??_Eostream_withassign@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Eostream_withassign@@UAEPAXI at Z(ptr long) msvcirt.??_Eostream_withassign@@UAEPAXI at Z
 @ stub -arch=win32 ??_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
@@ -435,7 +435,7 @@
 @ thiscall -arch=win32 ??_Glogic_error@@UAEPAXI at Z(ptr long) msvcirt.??_Glogic_error@@UAEPAXI at Z
 @ stub -arch=win32 ??_Gofstream@@UAEPAXI at Z
 @ thiscall -arch=win32 ??_Gostream@@UAEPAXI at Z(ptr long) msvcirt.??_Gostream@@UAEPAXI at Z
-@ stub -arch=win32 ??_Gostream_withassign@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Gostream_withassign@@UAEPAXI at Z(ptr long) msvcirt.??_Gostream_withassign@@UAEPAXI at Z
 @ stub -arch=win32 ??_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
-- 
2.7.4




More information about the wine-patches mailing list