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

Iván Matellanes matellanesivan at gmail.com
Fri Aug 5 06:12:51 CDT 2016


ostream and ostream_withassign seem to be almost identical, with the
only exception being the copy constructor. Thus I've chosen to forward
most methods to their ostream counterparts in the spec file.
Comments are welcome as usual.

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

diff --git a/dlls/msvcirt/msvcirt.c b/dlls/msvcirt/msvcirt.c
index 9a0a05b..0e8fdf2 100644
--- a/dlls/msvcirt/msvcirt.c
+++ b/dlls/msvcirt/msvcirt.c
@@ -155,7 +155,7 @@ void __cdecl ios_unlockc(void);
 typedef struct _ostream {
     const int *vbtable;
     int unknown;
-} ostream;
+} ostream, ostream_withassign;
 
 /* class istream */
 typedef struct {
@@ -175,6 +175,7 @@ extern const vtable_ptr MSVCP_stdiobuf_vtable;
 /* ??_7ios@@6B@ */
 extern const vtable_ptr MSVCP_ios_vtable;
 /* ??_7ostream@@6B@ */
+/* ??_7ostream_withassign@@6B@ */
 extern const vtable_ptr MSVCP_ostream_vtable;
 /* ??_7istream@@6B@ */
 extern const vtable_ptr MSVCP_istream_vtable;
@@ -244,6 +245,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 +256,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_withassign),
+    &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 */
@@ -2266,6 +2270,8 @@ static inline ostream* ios_to_ostream(const ios *base)
 
 /* ??0ostream@@QAE at PAVstreambuf@@@Z */
 /* ??0ostream@@QEAA at PEAVstreambuf@@@Z */
+/* ??0ostream_withassign@@QAE at PAVstreambuf@@@Z */
+/* ??0ostream_withassign@@QEAA at PEAVstreambuf@@@Z */
 DEFINE_THISCALL_WRAPPER(ostream_sb_ctor, 12)
 ostream* __thiscall ostream_sb_ctor(ostream *this, streambuf *sb, BOOL virt_init)
 {
@@ -2296,6 +2302,8 @@ ostream* __thiscall ostream_copy_ctor(ostream *this, const ostream *copy, BOOL v
 
 /* ??0ostream@@IAE at XZ */
 /* ??0ostream@@IEAA at XZ */
+/* ??0ostream_withassign@@QAE at XZ */
+/* ??0ostream_withassign@@QEAA at XZ */
 DEFINE_THISCALL_WRAPPER(ostream_ctor, 8)
 ostream* __thiscall ostream_ctor(ostream *this, BOOL virt_init)
 {
@@ -2316,6 +2324,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 +2336,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 +2358,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 +2374,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 +2388,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 +2412,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 +2865,16 @@ 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_withassign* __thiscall ostream_withassign_copy_ctor(ostream_withassign *this,
+    const ostream_withassign *copy, BOOL virt_init)
+{
+    FIXME("(%p %p %d) stub\n", this, copy, virt_init);
+    return this;
+}
+
 static inline ios* istream_get_ios(const istream *this)
 {
     return (ios*)((char*)this + this->vbtable[1]);
@@ -3841,6 +3871,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..47da3ff 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_sb_ctor
+@ cdecl -arch=win64 ??0ostream_withassign@@QEAA at PEAVstreambuf@@@Z(ptr ptr long) ostream_sb_ctor
+@ thiscall -arch=win32 ??0ostream_withassign@@QAE at XZ(ptr long) ostream_ctor
+@ cdecl -arch=win64 ??0ostream_withassign@@QEAA at XZ(ptr long) ostream_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_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