[01/10] msvcirt: Add stub of class strstreambuf (resend)
Iván Matellanes
matellanesivan at gmail.com
Thu Sep 17 04:06:46 CDT 2015
---
dlls/msvcirt/msvcirt.c | 214 ++++++++++++++++++++++++++++++++++++++++----
dlls/msvcirt/msvcirt.h | 2 +
dlls/msvcirt/msvcirt.spec | 70 +++++++--------
dlls/msvcrt20/msvcrt20.spec | 62 ++++++-------
dlls/msvcrt40/msvcrt40.spec | 62 ++++++-------
5 files changed, 298 insertions(+), 112 deletions(-)
diff --git a/dlls/msvcirt/msvcirt.c b/dlls/msvcirt/msvcirt.c
index ff31e8c..460d69a 100644
--- a/dlls/msvcirt/msvcirt.c
+++ b/dlls/msvcirt/msvcirt.c
@@ -106,6 +106,17 @@ typedef struct {
filebuf* __thiscall filebuf_close(filebuf*);
+/* class strstreambuf */
+typedef struct {
+ streambuf base;
+ int dynamic;
+ int increase;
+ int unknown;
+ int constant;
+ allocFunction f_alloc;
+ freeFunction f_free;
+} strstreambuf;
+
/* class ios */
struct _ostream;
typedef struct {
@@ -136,14 +147,12 @@ typedef struct _ostream {
const vtable_ptr *vtable;
} ostream;
-typedef struct {
- LPVOID VTable;
-} class_strstreambuf;
-
/* ??_7streambuf@@6B@ */
extern const vtable_ptr MSVCP_streambuf_vtable;
/* ??_7filebuf@@6B@ */
extern const vtable_ptr MSVCP_filebuf_vtable;
+/* ??_7strstreambuf@@6B@ */
+extern const vtable_ptr MSVCP_strstreambuf_vtable;
/* ??_7ios@@6B@ */
extern const vtable_ptr MSVCP_ios_vtable;
@@ -174,6 +183,18 @@ void __asm_dummy_vtables(void) {
VTABLE_ADD_FUNC(filebuf_underflow)
VTABLE_ADD_FUNC(streambuf_pbackfail)
VTABLE_ADD_FUNC(streambuf_doallocate));
+ __ASM_VTABLE(strstreambuf,
+ VTABLE_ADD_FUNC(strstreambuf_vector_dtor)
+ VTABLE_ADD_FUNC(strstreambuf_sync)
+ VTABLE_ADD_FUNC(strstreambuf_setbuf)
+ VTABLE_ADD_FUNC(strstreambuf_seekoff)
+ VTABLE_ADD_FUNC(streambuf_seekpos)
+ VTABLE_ADD_FUNC(streambuf_xsputn)
+ VTABLE_ADD_FUNC(streambuf_xsgetn)
+ VTABLE_ADD_FUNC(strstreambuf_overflow)
+ VTABLE_ADD_FUNC(strstreambuf_underflow)
+ VTABLE_ADD_FUNC(streambuf_pbackfail)
+ VTABLE_ADD_FUNC(strstreambuf_doallocate));
__ASM_VTABLE(ios,
VTABLE_ADD_FUNC(ios_vector_dtor));
#ifndef __GNUC__
@@ -182,6 +203,7 @@ void __asm_dummy_vtables(void) {
DEFINE_RTTI_DATA0(streambuf, 0, ".?AVstreambuf@@")
DEFINE_RTTI_DATA1(filebuf, 0, &streambuf_rtti_base_descriptor, ".?AVfilebuf@@")
+DEFINE_RTTI_DATA1(strstreambuf, 0, &streambuf_rtti_base_descriptor, ".?AVstrstreambuf@@")
DEFINE_RTTI_DATA0(ios, 0, ".?AVios@@")
/* ??0streambuf@@IAE at PADH@Z */
@@ -1112,6 +1134,178 @@ int __thiscall filebuf_underflow(filebuf *this)
return *this->base.gptr;
}
+/* ??0strstreambuf@@QAE at ABV0@@Z */
+/* ??0strstreambuf@@QEAA at AEBV0@@Z */
+DEFINE_THISCALL_WRAPPER(strstreambuf_copy_ctor, 8)
+strstreambuf* __thiscall strstreambuf_copy_ctor(strstreambuf *this, const strstreambuf *copy)
+{
+ FIXME("(%p %p) stub\n", this, copy);
+ return this;
+}
+
+/* ??0strstreambuf@@QAE at H@Z */
+/* ??0strstreambuf@@QEAA at H@Z */
+DEFINE_THISCALL_WRAPPER(strstreambuf_dynamic_ctor, 8)
+strstreambuf* __thiscall strstreambuf_dynamic_ctor(strstreambuf* this, int length)
+{
+ FIXME("(%p %d) stub\n", this, length);
+ return this;
+}
+
+/* ??0strstreambuf@@QAE at P6APAXJ@ZP6AXPAX at Z@Z */
+/* ??0strstreambuf@@QEAA at P6APEAXJ@ZP6AXPEAX at Z@Z */
+DEFINE_THISCALL_WRAPPER(strstreambuf_funcs_ctor, 12)
+strstreambuf* __thiscall strstreambuf_funcs_ctor(strstreambuf* this, allocFunction falloc, freeFunction ffree)
+{
+ FIXME("(%p %p %p) stub\n", this, falloc, ffree);
+ return this;
+}
+
+/* ??0strstreambuf@@QAE at PADH0@Z */
+/* ??0strstreambuf@@QEAA at PEADH0@Z */
+DEFINE_THISCALL_WRAPPER(strstreambuf_buffer_ctor, 16)
+strstreambuf* __thiscall strstreambuf_buffer_ctor(strstreambuf *this, char *buffer, int length, char *put)
+{
+ FIXME("(%p %p %d %p) stub\n", this, buffer, length, put);
+ return this;
+}
+
+/* ??0strstreambuf@@QAE at PAEH0@Z */
+/* ??0strstreambuf@@QEAA at PEAEH0@Z */
+DEFINE_THISCALL_WRAPPER(strstreambuf_ubuffer_ctor, 16)
+strstreambuf* __thiscall strstreambuf_ubuffer_ctor(strstreambuf *this, unsigned char *buffer, int length, unsigned char *put)
+{
+ FIXME("(%p %p %d %p) stub\n", this, buffer, length, put);
+ return this;
+}
+
+/* ??0strstreambuf@@QAE at XZ */
+/* ??0strstreambuf@@QEAA at XZ */
+DEFINE_THISCALL_WRAPPER(strstreambuf_ctor, 4)
+strstreambuf* __thiscall strstreambuf_ctor(strstreambuf *this)
+{
+ FIXME("(%p) stub\n", this);
+ return this;
+}
+
+/* ??1strstreambuf@@UAE at XZ */
+/* ??1strstreambuf@@UEAA at XZ */
+DEFINE_THISCALL_WRAPPER(strstreambuf_dtor, 4)
+void __thiscall strstreambuf_dtor(strstreambuf *this)
+{
+ FIXME("(%p) stub\n", this);
+}
+
+/* ??4strstreambuf@@QAEAAV0 at ABV0@@Z */
+/* ??4strstreambuf@@QEAAAEAV0 at AEBV0@@Z */
+DEFINE_THISCALL_WRAPPER(strstreambuf_assign, 8)
+strstreambuf* __thiscall strstreambuf_assign(strstreambuf *this, const strstreambuf *rhs)
+{
+ strstreambuf_dtor(this);
+ return strstreambuf_copy_ctor(this, rhs);
+}
+
+/* ??_Estrstreambuf@@UAEPAXI at Z */
+DEFINE_THISCALL_WRAPPER(strstreambuf_vector_dtor, 8)
+strstreambuf* __thiscall strstreambuf_vector_dtor(strstreambuf *this, unsigned int flags)
+{
+ TRACE("(%p %x)\n", this, flags);
+ if (flags & 2) {
+ /* we have an array, with the number of elements stored before the first object */
+ INT_PTR i, *ptr = (INT_PTR *)this-1;
+
+ for (i = *ptr-1; i >= 0; i--)
+ strstreambuf_dtor(this+i);
+ MSVCRT_operator_delete(ptr);
+ } else {
+ strstreambuf_dtor(this);
+ if (flags & 1)
+ MSVCRT_operator_delete(this);
+ }
+ return this;
+}
+
+/* ??_Gstrstreambuf@@UAEPAXI at Z */
+DEFINE_THISCALL_WRAPPER(strstreambuf_scalar_dtor, 8)
+strstreambuf* __thiscall strstreambuf_scalar_dtor(strstreambuf *this, unsigned int flags)
+{
+ TRACE("(%p %x)\n", this, flags);
+ strstreambuf_dtor(this);
+ if (flags & 1) MSVCRT_operator_delete(this);
+ return this;
+}
+
+/* ?doallocate at strstreambuf@@MAEHXZ */
+/* ?doallocate at strstreambuf@@MEAAHXZ */
+DEFINE_THISCALL_WRAPPER(strstreambuf_doallocate, 4)
+int __thiscall strstreambuf_doallocate(strstreambuf *this)
+{
+ FIXME("(%p) stub\n", this);
+ return EOF;
+}
+
+/* ?freeze at strstreambuf@@QAEXH at Z */
+/* ?freeze at strstreambuf@@QEAAXH at Z */
+DEFINE_THISCALL_WRAPPER(strstreambuf_freeze, 8)
+void __thiscall strstreambuf_freeze(strstreambuf *this, int frozen)
+{
+ FIXME("(%p %d) stub\n", this, frozen);
+}
+
+/* ?overflow at strstreambuf@@UAEHH at Z */
+/* ?overflow at strstreambuf@@UEAAHH at Z */
+DEFINE_THISCALL_WRAPPER(strstreambuf_overflow, 8)
+int __thiscall strstreambuf_overflow(strstreambuf *this, int c)
+{
+ FIXME("(%p %d) stub\n", this, c);
+ return EOF;
+}
+
+/* ?seekoff at strstreambuf@@UAEJJW4seek_dir at ios@@H at Z */
+/* ?seekoff at strstreambuf@@UEAAJJW4seek_dir at ios@@H at Z */
+DEFINE_THISCALL_WRAPPER(strstreambuf_seekoff, 16)
+streampos __thiscall strstreambuf_seekoff(strstreambuf *this, streamoff offset, ios_seek_dir dir, int mode)
+{
+ FIXME("(%p %d %d %d) stub\n", this, offset, dir, mode);
+ return EOF;
+}
+
+/* ?setbuf at strstreambuf@@UAEPAVstreambuf@@PADH at Z */
+/* ?setbuf at strstreambuf@@UEAAPEAVstreambuf@@PEADH at Z */
+DEFINE_THISCALL_WRAPPER(strstreambuf_setbuf, 12)
+streambuf* __thiscall strstreambuf_setbuf(strstreambuf *this, char *buffer, int length)
+{
+ FIXME("(%p %p %d) stub\n", this, buffer, length);
+ return NULL;
+}
+
+/* ?str at strstreambuf@@QAEPADXZ */
+/* ?str at strstreambuf@@QEAAPEADXZ */
+DEFINE_THISCALL_WRAPPER(strstreambuf_str, 4)
+char* __thiscall strstreambuf_str(strstreambuf *this)
+{
+ FIXME("(%p) stub\n", this);
+ return NULL;
+}
+
+/* ?sync at strstreambuf@@UAEHXZ */
+/* ?sync at strstreambuf@@UEAAHXZ */
+DEFINE_THISCALL_WRAPPER(strstreambuf_sync, 4)
+int __thiscall strstreambuf_sync(strstreambuf *this)
+{
+ FIXME("(%p) stub\n", this);
+ return EOF;
+}
+
+/* ?underflow at strstreambuf@@UAEHXZ */
+/* ?underflow at strstreambuf@@UEAAHXZ */
+DEFINE_THISCALL_WRAPPER(strstreambuf_underflow, 4)
+int __thiscall strstreambuf_underflow(strstreambuf *this)
+{
+ FIXME("(%p) stub\n", this);
+ return EOF;
+}
+
/* ??0ios@@IAE at ABV0@@Z */
/* ??0ios@@IEAA at AEBV0@@Z */
DEFINE_THISCALL_WRAPPER(ios_copy_ctor, 8)
@@ -1723,17 +1917,6 @@ void * CDECL MSVCIRT_ends(ostream * _this)
return _this;
}
-/******************************************************************
- * ?str at strstreambuf@@QAEPADXZ (MSVCRTI.@)
- * class strstreambuf & __thiscall strstreambuf::str(class strstreambuf &)
- */
-DEFINE_THISCALL_WRAPPER(MSVCIRT_str_sl_void,4)
-char * __thiscall MSVCIRT_str_sl_void(class_strstreambuf * _this)
-{
- FIXME("(%p)->() stub\n", _this);
- return 0;
-}
-
#ifdef __i386__
#define DEFINE_VTBL_WRAPPER(off) \
@@ -1786,6 +1969,7 @@ static void init_io(void *base)
#ifdef __x86_64__
init_streambuf_rtti(base);
init_filebuf_rtti(base);
+ init_strstreambuf_rtti(base);
init_ios_rtti(base);
#endif
}
diff --git a/dlls/msvcirt/msvcirt.h b/dlls/msvcirt/msvcirt.h
index 8886a44..5b59b78 100644
--- a/dlls/msvcirt/msvcirt.h
+++ b/dlls/msvcirt/msvcirt.h
@@ -23,6 +23,8 @@
typedef LONG streamoff;
typedef LONG streampos;
typedef int filedesc;
+typedef void* (__cdecl *allocFunction)(LONG);
+typedef void (__cdecl *freeFunction)(void*);
typedef enum {
IOSTATE_goodbit = 0x0,
diff --git a/dlls/msvcirt/msvcirt.spec b/dlls/msvcirt/msvcirt.spec
index ffb6f21..4b448ba 100644
--- a/dlls/msvcirt/msvcirt.spec
+++ b/dlls/msvcirt/msvcirt.spec
@@ -118,18 +118,18 @@
@ stub -arch=win64 ??0strstream@@QEAA at PEADHH@Z
@ stub -arch=win32 ??0strstream@@QAE at XZ # __thiscall strstream::strstream(void)
@ stub -arch=win64 ??0strstream@@QEAA at XZ
-@ stub -arch=win32 ??0strstreambuf@@QAE at ABV0@@Z # __thiscall strstreambuf::strstreambuf(class strstreambuf const &)
-@ stub -arch=win64 ??0strstreambuf@@QEAA at AEBV0@@Z
-@ stub -arch=win32 ??0strstreambuf@@QAE at H@Z # __thiscall strstreambuf::strstreambuf(int)
-@ stub -arch=win64 ??0strstreambuf@@QEAA at H@Z
-@ stub -arch=win32 ??0strstreambuf@@QAE at P6APAXJ@ZP6AXPAX at Z@Z # __thiscall strstreambuf::strstreambuf(void * (__cdecl*)(long),void (__cdecl*)(void *))
-@ stub -arch=win64 ??0strstreambuf@@QEAA at P6APEAXJ@ZP6AXPEAX at Z@Z
-@ stub -arch=win32 ??0strstreambuf@@QAE at PADH0@Z # __thiscall strstreambuf::strstreambuf(char *,int,char *)
-@ stub -arch=win64 ??0strstreambuf@@QEAA at PEADH0@Z
-@ stub -arch=win32 ??0strstreambuf@@QAE at PAEH0@Z # __thiscall strstreambuf::strstreambuf(unsigned char *,int,unsigned char *)
-@ stub -arch=win64 ??0strstreambuf@@QEAA at PEAEH0@Z
-@ stub -arch=win32 ??0strstreambuf@@QAE at XZ # __thiscall strstreambuf::strstreambuf(void)
-@ stub -arch=win64 ??0strstreambuf@@QEAA at XZ
+@ thiscall -arch=win32 ??0strstreambuf@@QAE at ABV0@@Z(ptr ptr) strstreambuf_copy_ctor
+@ cdecl -arch=win64 ??0strstreambuf@@QEAA at AEBV0@@Z(ptr ptr) strstreambuf_copy_ctor
+@ thiscall -arch=win32 ??0strstreambuf@@QAE at H@Z(ptr long) strstreambuf_dynamic_ctor
+@ cdecl -arch=win64 ??0strstreambuf@@QEAA at H@Z(ptr long) strstreambuf_dynamic_ctor
+@ thiscall -arch=win32 ??0strstreambuf@@QAE at P6APAXJ@ZP6AXPAX at Z@Z(ptr ptr ptr) strstreambuf_funcs_ctor
+@ cdecl -arch=win64 ??0strstreambuf@@QEAA at P6APEAXJ@ZP6AXPEAX at Z@Z(ptr ptr ptr) strstreambuf_funcs_ctor
+@ thiscall -arch=win32 ??0strstreambuf@@QAE at PADH0@Z(ptr ptr long ptr) strstreambuf_buffer_ctor
+@ cdecl -arch=win64 ??0strstreambuf@@QEAA at PEADH0@Z(ptr ptr long ptr) strstreambuf_buffer_ctor
+@ thiscall -arch=win32 ??0strstreambuf@@QAE at PAEH0@Z(ptr ptr long ptr) strstreambuf_ubuffer_ctor
+@ cdecl -arch=win64 ??0strstreambuf@@QEAA at PEAEH0@Z(ptr ptr long ptr) strstreambuf_ubuffer_ctor
+@ thiscall -arch=win32 ??0strstreambuf@@QAE at XZ(ptr) strstreambuf_ctor
+@ cdecl -arch=win64 ??0strstreambuf@@QEAA at XZ(ptr) strstreambuf_ctor
@ stub -arch=win32 ??1Iostream_init@@QAE at XZ # __thiscall Iostream_init::~Iostream_init(void)
@ stub -arch=win64 ??1Iostream_init@@QEAA at XZ
@ thiscall -arch=i386 ??1exception@@UAE at XZ(ptr) MSVCP_exception_dtor
@@ -168,8 +168,8 @@
@ cdecl -arch=win64 ??1streambuf@@UEAA at XZ(ptr) streambuf_dtor
@ stub -arch=win32 ??1strstream@@UAE at XZ # virtual __thiscall strstream::~strstream(void)
@ stub -arch=win64 ??1strstream@@UEAA at XZ
-@ stub -arch=win32 ??1strstreambuf@@UAE at XZ # virtual __thiscall strstreambuf::~strstreambuf(void)
-@ stub -arch=win64 ??1strstreambuf@@UEAA at XZ
+@ thiscall -arch=win32 ??1strstreambuf@@UAE at XZ(ptr) strstreambuf_dtor
+@ cdecl -arch=win64 ??1strstreambuf@@UEAA at XZ(ptr) strstreambuf_dtor
@ stub -arch=win32 ??4Iostream_init@@QAEAAV0 at ABV0@@Z # class Iostream_init & __thiscall Iostream_init::operator=(class Iostream_init const &)
@ stub -arch=win64 ??4Iostream_init@@QEAAAEAV0 at AEBV0@@Z
@ thiscall -arch=i386 ??4exception@@QAEAAV0 at ABV0@@Z(ptr ptr) MSVCP_exception_assign
@@ -222,8 +222,8 @@
@ cdecl -arch=win64 ??4streambuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) streambuf_assign
@ stub -arch=win32 ??4strstream@@QAEAAV0 at AAV0@@Z # class strstream & __thiscall strstream::operator=(class strstream &)
@ stub -arch=win64 ??4strstream@@QEAAAEAV0 at AEAV0@@Z
-@ stub -arch=win32 ??4strstreambuf@@QAEAAV0 at ABV0@@Z # class strstreambuf & __thiscall strstreambuf::operator=(class strstreambuf const &)
-@ stub -arch=win64 ??4strstreambuf@@QEAAAEAV0 at AEBV0@@Z
+@ thiscall -arch=win32 ??4strstreambuf@@QAEAAV0 at ABV0@@Z(ptr ptr) strstreambuf_assign
+@ cdecl -arch=win64 ??4strstreambuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) strstreambuf_assign
@ stub -arch=win32 ??5istream@@QAEAAV0 at AAC@Z # class istream & __thiscall istream::operator>>(signed char &)
@ stub -arch=win64 ??5istream@@QEAAAEAV0 at AEAC@Z
@ stub -arch=win32 ??5istream@@QAEAAV0 at AAD@Z # class istream & __thiscall istream::operator>>(char &)
@@ -320,7 +320,7 @@
# @ extern ??_7stdiostream@@6B@ # const stdiostream::`vftable'
@ extern ??_7streambuf@@6B@ MSVCP_streambuf_vtable
# @ extern ??_7strstream@@6B@ # const strstream::`vftable'
-# @ extern ??_7strstreambuf@@6B@ # const strstreambuf::`vftable'
+@ extern ??_7strstreambuf@@6B@ MSVCP_strstreambuf_vtable
# @ extern ??_8fstream@@7Bistream@@@ # const fstream::`vbtable'{for `istream'}
# @ extern ??_8fstream@@7Bostream@@@ # const fstream::`vbtable'{for `ostream'}
# @ extern ??_8ifstream@@7B@ # const ifstream::`vbtable'
@@ -379,7 +379,7 @@
@ stub -arch=win32 ??_Estdiostream@@UAEPAXI at Z # virtual void * __thiscall stdiostream::`vector deleting destructor'(unsigned int)
@ thiscall -arch=win32 ??_Estreambuf@@UAEPAXI at Z(ptr long) streambuf_vector_dtor
@ stub -arch=win32 ??_Estrstream@@UAEPAXI at Z # virtual void * __thiscall strstream::`vector deleting destructor'(unsigned int)
-@ stub -arch=win32 ??_Estrstreambuf@@UAEPAXI at Z # virtual void * __thiscall strstreambuf::`vector deleting destructor'(unsigned int)
+@ thiscall -arch=win32 ??_Estrstreambuf@@UAEPAXI at Z(ptr long) strstreambuf_vector_dtor
@ thiscall -arch=win32 ??_Gexception@@UAEPAXI at Z(ptr long) MSVCP_exception_scalar_dtor
@ thiscall -arch=win32 ??_Gfilebuf@@UAEPAXI at Z(ptr long) filebuf_scalar_dtor
@ stub -arch=win32 ??_Gfstream@@UAEPAXI at Z # virtual void * __thiscall fstream::`scalar deleting destructor'(unsigned int)
@@ -398,7 +398,7 @@
@ stub -arch=win32 ??_Gstdiostream@@UAEPAXI at Z # virtual void * __thiscall stdiostream::`scalar deleting destructor'(unsigned int)
@ thiscall -arch=win32 ??_Gstreambuf@@UAEPAXI at Z(ptr long) streambuf_scalar_dtor
@ stub -arch=win32 ??_Gstrstream@@UAEPAXI at Z # virtual void * __thiscall strstream::`scalar deleting destructor'(unsigned int)
-@ stub -arch=win32 ??_Gstrstreambuf@@UAEPAXI at Z # virtual void * __thiscall strstreambuf::`scalar deleting destructor'(unsigned int)
+@ thiscall -arch=win32 ??_Gstrstreambuf@@UAEPAXI at Z(ptr long) strstreambuf_scalar_dtor
@ extern ?adjustfield at ios@@2JB ios_adjustfield
@ thiscall -arch=win32 ?allocate at streambuf@@IAEHXZ(ptr) streambuf_allocate
@ cdecl -arch=win64 ?allocate at streambuf@@IEAAHXZ(ptr) streambuf_allocate
@@ -447,8 +447,8 @@
@ cdecl -arch=win64 ?delbuf at ios@@QEBAHXZ(ptr) ios_delbuf_get
@ thiscall -arch=win32 ?doallocate at streambuf@@MAEHXZ(ptr) streambuf_doallocate
@ cdecl -arch=win64 ?doallocate at streambuf@@MEAAHXZ(ptr) streambuf_doallocate
-@ stub -arch=win32 ?doallocate at strstreambuf@@MAEHXZ # virtual int __thiscall strstreambuf::doallocate(void)
-@ stub -arch=win64 ?doallocate at strstreambuf@@MEAAHXZ
+@ thiscall -arch=win32 ?doallocate at strstreambuf@@MAEHXZ(ptr) strstreambuf_doallocate
+@ cdecl -arch=win64 ?doallocate at strstreambuf@@MEAAHXZ(ptr) strstreambuf_doallocate
@ stub -arch=win32 ?eatwhite at istream@@QAEXXZ # void __thiscall istream::eatwhite(void)
@ stub -arch=win64 ?eatwhite at istream@@QEAAXXZ
@ thiscall -arch=win32 ?eback at streambuf@@IBEPADXZ(ptr) streambuf_eback
@@ -489,8 +489,8 @@
@ stub -arch=win64 ?flush@@YAAEAVostream@@AEAV1@@Z
@ stub -arch=win32 ?flush at ostream@@QAEAAV1 at XZ # class ostream & __thiscall ostream::flush(void)
@ stub -arch=win64 ?flush at ostream@@QEAAAEAV1 at XZ
-@ stub -arch=win32 ?freeze at strstreambuf@@QAEXH at Z # void __thiscall strstreambuf::freeze(int)
-@ stub -arch=win64 ?freeze at strstreambuf@@QEAAXH at Z
+@ thiscall -arch=win32 ?freeze at strstreambuf@@QAEXH at Z(ptr long) strstreambuf_freeze
+@ cdecl -arch=win64 ?freeze at strstreambuf@@QEAAXH at Z(ptr long) strstreambuf_freeze
@ thiscall -arch=win32 ?gbump at streambuf@@IAEXH at Z(ptr long) streambuf_gbump
@ cdecl -arch=win64 ?gbump at streambuf@@IEAAXH at Z(ptr long) streambuf_gbump
@ stub -arch=win32 ?gcount at istream@@QBEHXZ # int __thiscall istream::gcount(void)const
@@ -581,8 +581,8 @@
@ cdecl -arch=win64 ?overflow at filebuf@@UEAAHH at Z(ptr long) filebuf_overflow
@ stub -arch=win32 ?overflow at stdiobuf@@UAEHH at Z # virtual int __thiscall stdiobuf::overflow(int)
@ stub -arch=win64 ?overflow at stdiobuf@@UEAAHH at Z
-@ stub -arch=win32 ?overflow at strstreambuf@@UAEHH at Z # virtual int __thiscall strstreambuf::overflow(int)
-@ stub -arch=win64 ?overflow at strstreambuf@@UEAAHH at Z
+@ thiscall -arch=win32 ?overflow at strstreambuf@@UAEHH at Z(ptr long) strstreambuf_overflow
+@ cdecl -arch=win64 ?overflow at strstreambuf@@UEAAHH at Z(ptr long) strstreambuf_overflow
@ stub -arch=win32 ?pbackfail at stdiobuf@@UAEHH at Z # virtual int __thiscall stdiobuf::pbackfail(int)
@ stub -arch=win64 ?pbackfail at stdiobuf@@UEAAHH at Z
@ thiscall -arch=win32 ?pbackfail at streambuf@@UAEHH at Z(ptr long) streambuf_pbackfail
@@ -649,8 +649,8 @@
@ stub -arch=win64 ?seekoff at stdiobuf@@UEAAJJW4seek_dir at ios@@H at Z
@ thiscall -arch=win32 ?seekoff at streambuf@@UAEJJW4seek_dir at ios@@H at Z(ptr long long long) streambuf_seekoff
@ cdecl -arch=win64 ?seekoff at streambuf@@UEAAJJW4seek_dir at ios@@H at Z(ptr long long long) streambuf_seekoff
-@ stub -arch=win32 ?seekoff at strstreambuf@@UAEJJW4seek_dir at ios@@H at Z # virtual long __thiscall strstreambuf::seekoff(long,enum ios::seek_dir,int)
-@ stub -arch=win64 ?seekoff at strstreambuf@@UEAAJJW4seek_dir at ios@@H at Z
+@ thiscall -arch=win32 ?seekoff at strstreambuf@@UAEJJW4seek_dir at ios@@H at Z(ptr long long long) strstreambuf_seekoff
+@ cdecl -arch=win64 ?seekoff at strstreambuf@@UEAAJJW4seek_dir at ios@@H at Z(ptr long long long) strstreambuf_seekoff
@ stub -arch=win32 ?seekp at ostream@@QAEAAV1 at J@Z # class ostream & __thiscall ostream::seekp(long)
@ stub -arch=win64 ?seekp at ostream@@QEAAAEAV1 at J@Z
@ stub -arch=win32 ?seekp at ostream@@QAEAAV1 at JW4seek_dir@ios@@@Z # class ostream & __thiscall ostream::seekp(long,enum ios::seek_dir)
@@ -669,8 +669,8 @@
@ stub -arch=win64 ?setbuf at ofstream@@QEAAPEAVstreambuf@@PEADH at Z
@ thiscall -arch=win32 ?setbuf at streambuf@@UAEPAV1 at PADH@Z(ptr ptr long) streambuf_setbuf
@ cdecl -arch=win64 ?setbuf at streambuf@@UEAAPEAV1 at PEADH@Z(ptr ptr long) streambuf_setbuf
-@ stub -arch=win32 ?setbuf at strstreambuf@@UAEPAVstreambuf@@PADH at Z # virtual class streambuf * __thiscall strstreambuf::setbuf(char *,int)
-@ stub -arch=win64 ?setbuf at strstreambuf@@UEAAPEAVstreambuf@@PEADH at Z
+@ thiscall -arch=win32 ?setbuf at strstreambuf@@UAEPAVstreambuf@@PADH at Z(ptr ptr long) strstreambuf_setbuf
+@ cdecl -arch=win64 ?setbuf at strstreambuf@@UEAAPEAVstreambuf@@PEADH at Z(ptr ptr long) strstreambuf_setbuf
@ thiscall -arch=win32 ?setf at ios@@QAEJJ at Z(ptr long) ios_setf
@ cdecl -arch=win64 ?setf at ios@@QEAAJJ at Z(ptr long) ios_setf
@ thiscall -arch=win32 ?setf at ios@@QAEJJJ at Z(ptr long long) ios_setf_mask
@@ -718,8 +718,8 @@
@ stub -arch=win64 ?str at ostrstream@@QEAAPEADXZ
@ stub -arch=win32 ?str at strstream@@QAEPADXZ # char * __thiscall strstream::str(void)
@ stub -arch=win64 ?str at strstream@@QEAAPEADXZ
-@ thiscall -arch=win32 ?str at strstreambuf@@QAEPADXZ(ptr) MSVCIRT_str_sl_void # char * __thiscall strstreambuf::str(void)
-@ cdecl -arch=win64 ?str at strstreambuf@@QEAAPEADXZ(ptr) MSVCIRT_str_sl_void
+@ thiscall -arch=win32 ?str at strstreambuf@@QAEPADXZ(ptr) strstreambuf_str
+@ cdecl -arch=win64 ?str at strstreambuf@@QEAAPEADXZ(ptr) strstreambuf_str
# @ extern ?sunk_with_stdio at ios@@0HA # static int ios::sunk_with_stdio
@ thiscall -arch=win32 ?sync at filebuf@@UAEHXZ(ptr) filebuf_sync
@ cdecl -arch=win64 ?sync at filebuf@@UEAAHXZ(ptr) filebuf_sync
@@ -729,8 +729,8 @@
@ stub -arch=win64 ?sync at stdiobuf@@UEAAHXZ
@ thiscall -arch=win32 ?sync at streambuf@@UAEHXZ(ptr) streambuf_sync
@ cdecl -arch=win64 ?sync at streambuf@@UEAAHXZ(ptr) streambuf_sync
-@ stub -arch=win32 ?sync at strstreambuf@@UAEHXZ # virtual int __thiscall strstreambuf::sync(void)
-@ stub -arch=win64 ?sync at strstreambuf@@UEAAHXZ
+@ thiscall -arch=win32 ?sync at strstreambuf@@UAEHXZ(ptr) strstreambuf_sync
+@ cdecl -arch=win64 ?sync at strstreambuf@@UEAAHXZ(ptr) strstreambuf_sync
@ cdecl ?sync_with_stdio at ios@@SAXXZ() ios_sync_with_stdio
@ stub -arch=win32 ?tellg at istream@@QAEJXZ # long __thiscall istream::tellg(void)
@ stub -arch=win64 ?tellg at istream@@QEAAJXZ
@@ -749,8 +749,8 @@
@ cdecl -arch=win64 ?underflow at filebuf@@UEAAHXZ(ptr) filebuf_underflow
@ stub -arch=win32 ?underflow at stdiobuf@@UAEHXZ # virtual int __thiscall stdiobuf::underflow(void)
@ stub -arch=win64 ?underflow at stdiobuf@@UEAAHXZ
-@ stub -arch=win32 ?underflow at strstreambuf@@UAEHXZ # virtual int __thiscall strstreambuf::underflow(void)
-@ stub -arch=win64 ?underflow at strstreambuf@@UEAAHXZ
+@ thiscall -arch=win32 ?underflow at strstreambuf@@UAEHXZ(ptr) strstreambuf_underflow
+@ cdecl -arch=win64 ?underflow at strstreambuf@@UEAAHXZ(ptr) strstreambuf_underflow
@ cdecl -arch=win32 ?unlock at ios@@QAAXXZ(ptr) ios_unlock
@ cdecl -arch=win64 ?unlock at ios@@QEAAXXZ(ptr) ios_unlock
@ thiscall -arch=win32 ?unlock at streambuf@@QAEXXZ(ptr) streambuf_unlock
diff --git a/dlls/msvcrt20/msvcrt20.spec b/dlls/msvcrt20/msvcrt20.spec
index ade81ae..53ef34c 100644
--- a/dlls/msvcrt20/msvcrt20.spec
+++ b/dlls/msvcrt20/msvcrt20.spec
@@ -108,16 +108,16 @@
@ stub -arch=win64 ??0strstream@@QEAA at PEADHH@Z
@ stub -arch=win32 ??0strstream@@QAE at XZ
@ stub -arch=win64 ??0strstream@@QEAA at XZ
-@ stub -arch=win32 ??0strstreambuf@@QAE at ABV0@@Z
-@ stub -arch=win64 ??0strstreambuf@@QEAA at AEBV0@@Z
-@ stub -arch=win32 ??0strstreambuf@@QAE at H@Z
-@ stub -arch=win64 ??0strstreambuf@@QEAA at H@Z
-@ stub -arch=win32 ??0strstreambuf@@QAE at P6APAXJ@ZP6AXPAX at Z@Z
-@ stub -arch=win64 ??0strstreambuf@@QEAA at P6APEAXJ@ZP6AXPEAX at Z@Z
-@ stub -arch=win32 ??0strstreambuf@@QAE at PADH0@Z
-@ stub -arch=win64 ??0strstreambuf@@QEAA at PEADH0@Z
-@ stub -arch=win32 ??0strstreambuf@@QAE at XZ
-@ stub -arch=win64 ??0strstreambuf@@QEAA at XZ
+@ thiscall -arch=win32 ??0strstreambuf@@QAE at ABV0@@Z(ptr ptr) msvcirt.??0strstreambuf@@QAE at ABV0@@Z
+@ cdecl -arch=win64 ??0strstreambuf@@QEAA at AEBV0@@Z(ptr ptr) msvcirt.??0strstreambuf@@QEAA at AEBV0@@Z
+@ thiscall -arch=win32 ??0strstreambuf@@QAE at H@Z(ptr long) msvcirt.??0strstreambuf@@QAE at H@Z
+@ cdecl -arch=win64 ??0strstreambuf@@QEAA at H@Z(ptr long) msvcirt.??0strstreambuf@@QEAA at H@Z
+@ thiscall -arch=win32 ??0strstreambuf@@QAE at P6APAXJ@ZP6AXPAX at Z@Z(ptr ptr ptr) msvcirt.??0strstreambuf@@QAE at P6APAXJ@ZP6AXPAX at Z@Z
+@ cdecl -arch=win64 ??0strstreambuf@@QEAA at P6APEAXJ@ZP6AXPEAX at Z@Z(ptr ptr ptr) msvcirt.??0strstreambuf@@QEAA at P6APEAXJ@ZP6AXPEAX at Z@Z
+@ thiscall -arch=win32 ??0strstreambuf@@QAE at PADH0@Z(ptr ptr long ptr) msvcirt.??0strstreambuf@@QAE at PADH0@Z
+@ cdecl -arch=win64 ??0strstreambuf@@QEAA at PEADH0@Z(ptr ptr long ptr) msvcirt.??0strstreambuf@@QEAA at PEADH0@Z
+@ thiscall -arch=win32 ??0strstreambuf@@QAE at XZ(ptr) msvcirt.??0strstreambuf@@QAE at XZ
+@ cdecl -arch=win64 ??0strstreambuf@@QEAA at XZ(ptr) msvcirt.??0strstreambuf@@QEAA at XZ
@ stub -arch=win32 ??1Iostream_init@@QAE at XZ
@ stub -arch=win64 ??1Iostream_init@@QEAA at XZ
@ thiscall -arch=win32 ??1filebuf@@UAE at XZ(ptr) msvcirt.??1filebuf@@UAE at XZ
@@ -152,8 +152,8 @@
@ cdecl -arch=win64 ??1streambuf@@UEAA at XZ(ptr) msvcirt.??1streambuf@@UEAA at XZ
@ stub -arch=win32 ??1strstream@@UAE at XZ
@ stub -arch=win64 ??1strstream@@UEAA at XZ
-@ stub -arch=win32 ??1strstreambuf@@UAE at XZ
-@ stub -arch=win64 ??1strstreambuf@@UEAA at XZ
+@ thiscall -arch=win32 ??1strstreambuf@@UAE at XZ(ptr) msvcirt.??1strstreambuf@@UAE at XZ
+@ cdecl -arch=win64 ??1strstreambuf@@UEAA at XZ(ptr) msvcirt.??1strstreambuf@@UEAA at XZ
@ cdecl -arch=win32 ??2 at YAPAXI@Z(long) msvcrt.??2 at YAPAXI@Z
@ cdecl -arch=win64 ??2 at YAPEAX_K@Z(long) msvcrt.??2 at YAPEAX_K@Z
@ cdecl -arch=win32 ??3 at YAXPAX@Z(ptr) msvcrt.??3 at YAXPAX@Z
@@ -206,8 +206,8 @@
@ cdecl -arch=win64 ??4streambuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4streambuf@@QEAAAEAV0 at AEBV0@@Z
@ stub -arch=win32 ??4strstream@@QAEAAV0 at AAV0@@Z
@ stub -arch=win64 ??4strstream@@QEAAAEAV0 at AEAV0@@Z
-@ stub -arch=win32 ??4strstreambuf@@QAEAAV0 at ABV0@@Z
-@ stub -arch=win64 ??4strstreambuf@@QEAAAEAV0 at AEBV0@@Z
+@ thiscall -arch=win32 ??4strstreambuf@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4strstreambuf@@QAEAAV0 at ABV0@@Z
+@ cdecl -arch=win64 ??4strstreambuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4strstreambuf@@QEAAAEAV0 at AEBV0@@Z
@ stub -arch=win32 ??5istream@@QAEAAV0 at AAC@Z
@ stub -arch=win64 ??5istream@@QEAAAEAV0 at AEAC@Z
@ stub -arch=win32 ??5istream@@QAEAAV0 at AAD@Z
@@ -302,7 +302,7 @@
# @ extern ??_7stdiostream@@6B@
@ extern ??_7streambuf@@6B@ msvcirt.??_7streambuf@@6B@
# @ extern ??_7strstream@@6B@
-# @ extern ??_7strstreambuf@@6B@
+@ extern ??_7strstreambuf@@6B@ msvcirt.??_7strstreambuf@@6B@
# @ extern ??_8fstream@@7Bistream@@@
# @ extern ??_8fstream@@7Bostream@@@
# @ extern ??_8ifstream@@7B@
@@ -360,7 +360,7 @@
@ stub -arch=win32 ??_Estdiostream@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Estreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Estreambuf@@UAEPAXI at Z
@ stub -arch=win32 ??_Estrstream@@UAEPAXI at Z
-@ stub -arch=win32 ??_Estrstreambuf@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Estrstreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Estrstreambuf@@UAEPAXI at Z
@ stub -arch=win32 ??_GIostream_init@@QAEPAXI at Z
@ thiscall -arch=win32 ??_Gfilebuf@@UAEPAXI at Z(ptr long) msvcirt.??_Gfilebuf@@UAEPAXI at Z
@ stub -arch=win32 ??_Gfstream@@UAEPAXI at Z
@@ -378,7 +378,7 @@
@ stub -arch=win32 ??_Gstdiostream@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Gstreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Gstreambuf@@UAEPAXI at Z
@ stub -arch=win32 ??_Gstrstream@@UAEPAXI at Z
-@ stub -arch=win32 ??_Gstrstreambuf@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Gstrstreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Gstrstreambuf@@UAEPAXI at Z
@ cdecl -arch=win32 ?_query_new_handler@@YAP6AHI at ZXZ() msvcrt.?_query_new_handler@@YAP6AHI at ZXZ
@ cdecl -arch=win64 ?_query_new_handler@@YAP6AH_K at ZXZ() msvcrt.?_query_new_handler@@YAP6AH_K at ZXZ
@ cdecl ?_query_new_mode@@YAHXZ() msvcrt.?_query_new_mode@@YAHXZ
@@ -435,8 +435,8 @@
@ cdecl -arch=win64 ?delbuf at ios@@QEBAHXZ(ptr) msvcirt.?delbuf at ios@@QEBAHXZ
@ thiscall -arch=win32 ?doallocate at streambuf@@MAEHXZ(ptr) msvcirt.?doallocate at streambuf@@MAEHXZ
@ cdecl -arch=win64 ?doallocate at streambuf@@MEAAHXZ(ptr) msvcirt.?doallocate at streambuf@@MEAAHXZ
-@ stub -arch=win32 ?doallocate at strstreambuf@@MAEHXZ
-@ stub -arch=win64 ?doallocate at strstreambuf@@MEAAHXZ
+@ thiscall -arch=win32 ?doallocate at strstreambuf@@MAEHXZ(ptr) msvcirt.?doallocate at strstreambuf@@MAEHXZ
+@ cdecl -arch=win64 ?doallocate at strstreambuf@@MEAAHXZ(ptr) msvcirt.?doallocate at strstreambuf@@MEAAHXZ
@ stub -arch=win32 ?eatwhite at istream@@QAEXXZ
@ stub -arch=win64 ?eatwhite at istream@@QEAAXXZ
@ thiscall -arch=win32 ?eback at streambuf@@IBEPADXZ(ptr) msvcirt.?eback at streambuf@@IBEPADXZ
@@ -477,8 +477,8 @@
@ stub -arch=win64 ?flush@@YAAEAVostream@@AEAV1@@Z
@ stub -arch=win32 ?flush at ostream@@QAEAAV1 at XZ
@ stub -arch=win64 ?flush at ostream@@QEAAAEAV1 at XZ
-@ stub -arch=win32 ?freeze at strstreambuf@@QAEXH at Z
-@ stub -arch=win64 ?freeze at strstreambuf@@QEAAXH at Z
+@ thiscall -arch=win32 ?freeze at strstreambuf@@QAEXH at Z(ptr long) msvcirt.?freeze at strstreambuf@@QAEXH at Z
+@ cdecl -arch=win64 ?freeze at strstreambuf@@QEAAXH at Z(ptr long) msvcirt.?freeze at strstreambuf@@QEAAXH at Z
@ thiscall -arch=win32 ?gbump at streambuf@@IAEXH at Z(ptr long) msvcirt.?gbump at streambuf@@IAEXH at Z
@ cdecl -arch=win64 ?gbump at streambuf@@IEAAXH at Z(ptr long) msvcirt.?gbump at streambuf@@IEAAXH at Z
@ stub -arch=win32 ?gcount at istream@@QBEHXZ
@@ -567,8 +567,8 @@
@ cdecl -arch=win64 ?overflow at filebuf@@UEAAHH at Z(ptr long) msvcirt.?overflow at filebuf@@UEAAHH at Z
@ stub -arch=win32 ?overflow at stdiobuf@@UAEHH at Z
@ stub -arch=win64 ?overflow at stdiobuf@@UEAAHH at Z
-@ stub -arch=win32 ?overflow at strstreambuf@@UAEHH at Z
-@ stub -arch=win64 ?overflow at strstreambuf@@UEAAHH at Z
+@ thiscall -arch=win32 ?overflow at strstreambuf@@UAEHH at Z(ptr long) msvcirt.?overflow at strstreambuf@@UAEHH at Z
+@ cdecl -arch=win64 ?overflow at strstreambuf@@UEAAHH at Z(ptr long) msvcirt.?overflow at strstreambuf@@UEAAHH at Z
@ stub -arch=win32 ?pbackfail at stdiobuf@@UAEHH at Z
@ stub -arch=win64 ?pbackfail at stdiobuf@@UEAAHH at Z
@ thiscall -arch=win32 ?pbackfail at streambuf@@UAEHH at Z(ptr long) msvcirt.?pbackfail at streambuf@@UAEHH at Z
@@ -635,8 +635,8 @@
@ stub -arch=win64 ?seekoff at stdiobuf@@UEAAJJW4seek_dir at ios@@H at Z
@ thiscall -arch=win32 ?seekoff at streambuf@@UAEJJW4seek_dir at ios@@H at Z(ptr long long long) msvcirt.?seekoff at streambuf@@UAEJJW4seek_dir at ios@@H at Z
@ cdecl -arch=win64 ?seekoff at streambuf@@UEAAJJW4seek_dir at ios@@H at Z(ptr long long long) msvcirt.?seekoff at streambuf@@UEAAJJW4seek_dir at ios@@H at Z
-@ stub -arch=win32 ?seekoff at strstreambuf@@UAEJJW4seek_dir at ios@@H at Z
-@ stub -arch=win64 ?seekoff at strstreambuf@@UEAAJJW4seek_dir at ios@@H at Z
+@ thiscall -arch=win32 ?seekoff at strstreambuf@@UAEJJW4seek_dir at ios@@H at Z(ptr long long long) msvcirt.?seekoff at strstreambuf@@UAEJJW4seek_dir at ios@@H at Z
+@ cdecl -arch=win64 ?seekoff at strstreambuf@@UEAAJJW4seek_dir at ios@@H at Z(ptr long long long) msvcirt.?seekoff at strstreambuf@@UEAAJJW4seek_dir at ios@@H at Z
@ stub -arch=win32 ?seekp at ostream@@QAEAAV1 at J@Z
@ stub -arch=win64 ?seekp at ostream@@QEAAAEAV1 at J@Z
@ stub -arch=win32 ?seekp at ostream@@QAEAAV1 at JW4seek_dir@ios@@@Z
@@ -657,8 +657,8 @@
@ stub -arch=win64 ?setbuf at ofstream@@QEAAPEAVstreambuf@@PEADH at Z
@ thiscall -arch=win32 ?setbuf at streambuf@@UAEPAV1 at PADH@Z(ptr ptr long) msvcirt.?setbuf at streambuf@@UAEPAV1 at PADH@Z
@ cdecl -arch=win64 ?setbuf at streambuf@@UEAAPEAV1 at PEADH@Z(ptr ptr long) msvcirt.?setbuf at streambuf@@UEAAPEAV1 at PEADH@Z
-@ stub -arch=win32 ?setbuf at strstreambuf@@UAEPAVstreambuf@@PADH at Z
-@ stub -arch=win64 ?setbuf at strstreambuf@@UEAAPEAVstreambuf@@PEADH at Z
+@ thiscall -arch=win32 ?setbuf at strstreambuf@@UAEPAVstreambuf@@PADH at Z(ptr ptr long) msvcirt.?setbuf at strstreambuf@@UAEPAVstreambuf@@PADH at Z
+@ cdecl -arch=win64 ?setbuf at strstreambuf@@UEAAPEAVstreambuf@@PEADH at Z(ptr ptr long) msvcirt.?setbuf at strstreambuf@@UEAAPEAVstreambuf@@PEADH at Z
@ thiscall -arch=win32 ?setf at ios@@QAEJJ at Z(ptr long) msvcirt.?setf at ios@@QAEJJ at Z
@ cdecl -arch=win64 ?setf at ios@@QEAAJJ at Z(ptr long) msvcirt.?setf at ios@@QEAAJJ at Z
@ thiscall -arch=win32 ?setf at ios@@QAEJJJ at Z(ptr long long) msvcirt.?setf at ios@@QAEJJJ at Z
@@ -717,8 +717,8 @@
@ stub -arch=win64 ?sync at stdiobuf@@UEAAHXZ
@ thiscall -arch=win32 ?sync at streambuf@@UAEHXZ(ptr) msvcirt.?sync at streambuf@@UAEHXZ
@ cdecl -arch=win64 ?sync at streambuf@@UEAAHXZ(ptr) msvcirt.?sync at streambuf@@UEAAHXZ
-@ stub -arch=win32 ?sync at strstreambuf@@UAEHXZ
-@ stub -arch=win64 ?sync at strstreambuf@@UEAAHXZ
+@ thiscall -arch=win32 ?sync at strstreambuf@@UAEHXZ(ptr) msvcirt.?sync at strstreambuf@@UAEHXZ
+@ cdecl -arch=win64 ?sync at strstreambuf@@UEAAHXZ(ptr) msvcirt.?sync at strstreambuf@@UEAAHXZ
@ cdecl ?sync_with_stdio at ios@@SAXXZ() msvcirt.?sync_with_stdio at ios@@SAXXZ
@ stub -arch=win32 ?tellg at istream@@QAEJXZ
@ stub -arch=win64 ?tellg at istream@@QEAAJXZ
@@ -738,8 +738,8 @@
@ cdecl -arch=win64 ?underflow at filebuf@@UEAAHXZ(ptr) msvcirt.?underflow at filebuf@@UEAAHXZ
@ stub -arch=win32 ?underflow at stdiobuf@@UAEHXZ
@ stub -arch=win64 ?underflow at stdiobuf@@UEAAHXZ
-@ stub -arch=win32 ?underflow at strstreambuf@@UAEHXZ
-@ stub -arch=win64 ?underflow at strstreambuf@@UEAAHXZ
+@ thiscall -arch=win32 ?underflow at strstreambuf@@UAEHXZ(ptr) msvcirt.?underflow at strstreambuf@@UAEHXZ
+@ cdecl -arch=win64 ?underflow at strstreambuf@@UEAAHXZ(ptr) msvcirt.?underflow at strstreambuf@@UEAAHXZ
@ cdecl ?unexpected@@YAXXZ() msvcrt.?unexpected@@YAXXZ
@ cdecl -arch=win32 ?unlock at ios@@QAAXXZ(ptr) msvcirt.?unlock at ios@@QAAXXZ
@ cdecl -arch=win64 ?unlock at ios@@QEAAXXZ(ptr) msvcirt.?unlock at ios@@QEAAXXZ
diff --git a/dlls/msvcrt40/msvcrt40.spec b/dlls/msvcrt40/msvcrt40.spec
index 33e4f16..4a220ba 100644
--- a/dlls/msvcrt40/msvcrt40.spec
+++ b/dlls/msvcrt40/msvcrt40.spec
@@ -130,16 +130,16 @@
@ stub -arch=win64 ??0strstream@@QEAA at PEADHH@Z
@ stub -arch=win32 ??0strstream@@QAE at XZ
@ stub -arch=win64 ??0strstream@@QEAA at XZ
-@ stub -arch=win32 ??0strstreambuf@@QAE at ABV0@@Z
-@ stub -arch=win64 ??0strstreambuf@@QEAA at AEBV0@@Z
-@ stub -arch=win32 ??0strstreambuf@@QAE at H@Z
-@ stub -arch=win64 ??0strstreambuf@@QEAA at H@Z
-@ stub -arch=win32 ??0strstreambuf@@QAE at P6APAXJ@ZP6AXPAX at Z@Z
-@ stub -arch=win64 ??0strstreambuf@@QEAA at P6APEAXJ@ZP6AXPEAX at Z@Z
-@ stub -arch=win32 ??0strstreambuf@@QAE at PADH0@Z
-@ stub -arch=win64 ??0strstreambuf@@QEAA at PEADH0@Z
-@ stub -arch=win32 ??0strstreambuf@@QAE at XZ
-@ stub -arch=win64 ??0strstreambuf@@QEAA at XZ
+@ thiscall -arch=win32 ??0strstreambuf@@QAE at ABV0@@Z(ptr ptr) msvcirt.??0strstreambuf@@QAE at ABV0@@Z
+@ cdecl -arch=win64 ??0strstreambuf@@QEAA at AEBV0@@Z(ptr ptr) msvcirt.??0strstreambuf@@QEAA at AEBV0@@Z
+@ thiscall -arch=win32 ??0strstreambuf@@QAE at H@Z(ptr long) msvcirt.??0strstreambuf@@QAE at H@Z
+@ cdecl -arch=win64 ??0strstreambuf@@QEAA at H@Z(ptr long) msvcirt.??0strstreambuf@@QEAA at H@Z
+@ thiscall -arch=win32 ??0strstreambuf@@QAE at P6APAXJ@ZP6AXPAX at Z@Z(ptr ptr ptr) msvcirt.??0strstreambuf@@QAE at P6APAXJ@ZP6AXPAX at Z@Z
+@ cdecl -arch=win64 ??0strstreambuf@@QEAA at P6APEAXJ@ZP6AXPEAX at Z@Z(ptr ptr ptr) msvcirt.??0strstreambuf@@QEAA at P6APEAXJ@ZP6AXPEAX at Z@Z
+@ thiscall -arch=win32 ??0strstreambuf@@QAE at PADH0@Z(ptr ptr long ptr) msvcirt.??0strstreambuf@@QAE at PADH0@Z
+@ cdecl -arch=win64 ??0strstreambuf@@QEAA at PEADH0@Z(ptr ptr long ptr) msvcirt.??0strstreambuf@@QEAA at PEADH0@Z
+@ thiscall -arch=win32 ??0strstreambuf@@QAE at XZ(ptr) msvcirt.??0strstreambuf@@QAE at XZ
+@ cdecl -arch=win64 ??0strstreambuf@@QEAA at XZ(ptr) msvcirt.??0strstreambuf@@QEAA at XZ
@ stub -arch=win32 ??1Iostream_init@@QAE at XZ
@ stub -arch=win64 ??1Iostream_init@@QEAA at XZ
@ thiscall -arch=i386 ??1__non_rtti_object@@UAE at XZ(ptr) msvcrt.??1__non_rtti_object@@UAE at XZ
@@ -184,8 +184,8 @@
@ cdecl -arch=win64 ??1streambuf@@UEAA at XZ(ptr) msvcirt.??1streambuf@@UEAA at XZ
@ stub -arch=win32 ??1strstream@@UAE at XZ
@ stub -arch=win64 ??1strstream@@UEAA at XZ
-@ stub -arch=win32 ??1strstreambuf@@UAE at XZ
-@ stub -arch=win64 ??1strstreambuf@@UEAA at XZ
+@ thiscall -arch=win32 ??1strstreambuf@@UAE at XZ(ptr) msvcirt.??1strstreambuf@@UAE at XZ
+@ cdecl -arch=win64 ??1strstreambuf@@UEAA at XZ(ptr) msvcirt.??1strstreambuf@@UEAA at XZ
@ thiscall -arch=i386 ??1type_info@@UAE at XZ(ptr) msvcrt.??1type_info@@UAE at XZ
@ cdecl -arch=win64 ??1type_info@@UEAA at XZ(ptr) msvcrt.??1type_info@@UEAA at XZ
@ cdecl -arch=win32 ??2 at YAPAXI@Z(long) msvcrt.??2 at YAPAXI@Z
@@ -250,8 +250,8 @@
@ cdecl -arch=win64 ??4streambuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4streambuf@@QEAAAEAV0 at AEBV0@@Z
@ stub -arch=win32 ??4strstream@@QAEAAV0 at AAV0@@Z
@ stub -arch=win64 ??4strstream@@QEAAAEAV0 at AEAV0@@Z
-@ stub -arch=win32 ??4strstreambuf@@QAEAAV0 at ABV0@@Z
-@ stub -arch=win64 ??4strstreambuf@@QEAAAEAV0 at AEBV0@@Z
+@ thiscall -arch=win32 ??4strstreambuf@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcirt.??4strstreambuf@@QAEAAV0 at ABV0@@Z
+@ cdecl -arch=win64 ??4strstreambuf@@QEAAAEAV0 at AEBV0@@Z(ptr ptr) msvcirt.??4strstreambuf@@QEAAAEAV0 at AEBV0@@Z
@ stub -arch=win32 ??5istream@@QAEAAV0 at AAC@Z
@ stub -arch=win64 ??5istream@@QEAAAEAV0 at AEAC@Z
@ stub -arch=win32 ??5istream@@QAEAAV0 at AAD@Z
@@ -355,7 +355,7 @@
# @ extern ??_7stdiostream@@6B@
@ extern ??_7streambuf@@6B@ msvcirt.??_7streambuf@@6B@
# @ extern ??_7strstream@@6B@
-# @ extern ??_7strstreambuf@@6B@
+@ extern ??_7strstreambuf@@6B@ msvcirt.??_7strstreambuf@@6B@
# @ extern ??_8fstream@@7Bistream@@@
# @ extern ??_8fstream@@7Bostream@@@
# @ extern ??_8ifstream@@7B@
@@ -418,7 +418,7 @@
@ stub -arch=win32 ??_Estdiostream@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Estreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Estreambuf@@UAEPAXI at Z
@ stub -arch=win32 ??_Estrstream@@UAEPAXI at Z
-@ stub -arch=win32 ??_Estrstreambuf@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Estrstreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Estrstreambuf@@UAEPAXI at Z
@ stub -arch=win32 ??_GIostream_init@@QAEPAXI at Z
@ thiscall -arch=win32 ??_G__non_rtti_object@@UAEPAXI at Z(ptr long) msvcrt.??_G__non_rtti_object@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Gbad_cast@@UAEPAXI at Z(ptr long) msvcrt.??_Gbad_cast@@UAEPAXI at Z
@@ -441,7 +441,7 @@
@ stub -arch=win32 ??_Gstdiostream@@UAEPAXI at Z
@ thiscall -arch=win32 ??_Gstreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Gstreambuf@@UAEPAXI at Z
@ stub -arch=win32 ??_Gstrstream@@UAEPAXI at Z
-@ stub -arch=win32 ??_Gstrstreambuf@@UAEPAXI at Z
+@ thiscall -arch=win32 ??_Gstrstreambuf@@UAEPAXI at Z(ptr long) msvcirt.??_Gstrstreambuf@@UAEPAXI at Z
@ cdecl -arch=win32 ?_query_new_handler@@YAP6AHI at ZXZ() msvcrt.?_query_new_handler@@YAP6AHI at ZXZ
@ cdecl -arch=win64 ?_query_new_handler@@YAP6AH_K at ZXZ() msvcrt.?_query_new_handler@@YAP6AH_K at ZXZ
@ cdecl ?_query_new_mode@@YAHXZ() msvcrt.?_query_new_mode@@YAHXZ
@@ -500,8 +500,8 @@
@ cdecl -arch=win64 ?delbuf at ios@@QEBAHXZ(ptr) msvcirt.?delbuf at ios@@QEBAHXZ
@ thiscall -arch=win32 ?doallocate at streambuf@@MAEHXZ(ptr) msvcirt.?doallocate at streambuf@@MAEHXZ
@ cdecl -arch=win64 ?doallocate at streambuf@@MEAAHXZ(ptr) msvcirt.?doallocate at streambuf@@MEAAHXZ
-@ stub -arch=win32 ?doallocate at strstreambuf@@MAEHXZ
-@ stub -arch=win64 ?doallocate at strstreambuf@@MEAAHXZ
+@ thiscall -arch=win32 ?doallocate at strstreambuf@@MAEHXZ(ptr) msvcirt.?doallocate at strstreambuf@@MAEHXZ
+@ cdecl -arch=win64 ?doallocate at strstreambuf@@MEAAHXZ(ptr) msvcirt.?doallocate at strstreambuf@@MEAAHXZ
@ stub -arch=win32 ?eatwhite at istream@@QAEXXZ
@ stub -arch=win64 ?eatwhite at istream@@QEAAXXZ
@ thiscall -arch=win32 ?eback at streambuf@@IBEPADXZ(ptr) msvcirt.?eback at streambuf@@IBEPADXZ
@@ -542,8 +542,8 @@
@ stub -arch=win64 ?flush@@YAAEAVostream@@AEAV1@@Z
@ stub -arch=win32 ?flush at ostream@@QAEAAV1 at XZ
@ stub -arch=win64 ?flush at ostream@@QEAAAEAV1 at XZ
-@ stub -arch=win32 ?freeze at strstreambuf@@QAEXH at Z
-@ stub -arch=win64 ?freeze at strstreambuf@@QEAAXH at Z
+@ thiscall -arch=win32 ?freeze at strstreambuf@@QAEXH at Z(ptr long) msvcirt.?freeze at strstreambuf@@QAEXH at Z
+@ cdecl -arch=win64 ?freeze at strstreambuf@@QEAAXH at Z(ptr long) msvcirt.?freeze at strstreambuf@@QEAAXH at Z
@ thiscall -arch=win32 ?gbump at streambuf@@IAEXH at Z(ptr long) msvcirt.?gbump at streambuf@@IAEXH at Z
@ cdecl -arch=win64 ?gbump at streambuf@@IEAAXH at Z(ptr long) msvcirt.?gbump at streambuf@@IEAAXH at Z
@ stub -arch=win32 ?gcount at istream@@QBEHXZ
@@ -636,8 +636,8 @@
@ cdecl -arch=win64 ?overflow at filebuf@@UEAAHH at Z(ptr long) msvcirt.?overflow at filebuf@@UEAAHH at Z
@ stub -arch=win32 ?overflow at stdiobuf@@UAEHH at Z
@ stub -arch=win64 ?overflow at stdiobuf@@UEAAHH at Z
-@ stub -arch=win32 ?overflow at strstreambuf@@UAEHH at Z
-@ stub -arch=win64 ?overflow at strstreambuf@@UEAAHH at Z
+@ thiscall -arch=win32 ?overflow at strstreambuf@@UAEHH at Z(ptr long) msvcirt.?overflow at strstreambuf@@UAEHH at Z
+@ cdecl -arch=win64 ?overflow at strstreambuf@@UEAAHH at Z(ptr long) msvcirt.?overflow at strstreambuf@@UEAAHH at Z
@ stub -arch=win32 ?pbackfail at stdiobuf@@UAEHH at Z
@ stub -arch=win64 ?pbackfail at stdiobuf@@UEAAHH at Z
@ thiscall -arch=win32 ?pbackfail at streambuf@@UAEHH at Z(ptr long) msvcirt.?pbackfail at streambuf@@UAEHH at Z
@@ -706,8 +706,8 @@
@ stub -arch=win64 ?seekoff at stdiobuf@@UEAAJJW4seek_dir at ios@@H at Z
@ thiscall -arch=win32 ?seekoff at streambuf@@UAEJJW4seek_dir at ios@@H at Z(ptr long long long) msvcirt.?seekoff at streambuf@@UAEJJW4seek_dir at ios@@H at Z
@ cdecl -arch=win64 ?seekoff at streambuf@@UEAAJJW4seek_dir at ios@@H at Z(ptr long long long) msvcirt.?seekoff at streambuf@@UEAAJJW4seek_dir at ios@@H at Z
-@ stub -arch=win32 ?seekoff at strstreambuf@@UAEJJW4seek_dir at ios@@H at Z
-@ stub -arch=win64 ?seekoff at strstreambuf@@UEAAJJW4seek_dir at ios@@H at Z
+@ thiscall -arch=win32 ?seekoff at strstreambuf@@UAEJJW4seek_dir at ios@@H at Z(ptr long long long) msvcirt.?seekoff at strstreambuf@@UAEJJW4seek_dir at ios@@H at Z
+@ cdecl -arch=win64 ?seekoff at strstreambuf@@UEAAJJW4seek_dir at ios@@H at Z(ptr long long long) msvcirt.?seekoff at strstreambuf@@UEAAJJW4seek_dir at ios@@H at Z
@ stub -arch=win32 ?seekp at ostream@@QAEAAV1 at J@Z
@ stub -arch=win64 ?seekp at ostream@@QEAAAEAV1 at J@Z
@ stub -arch=win32 ?seekp at ostream@@QAEAAV1 at JW4seek_dir@ios@@@Z
@@ -729,8 +729,8 @@
@ stub -arch=win64 ?setbuf at ofstream@@QEAAPEAVstreambuf@@PEADH at Z
@ thiscall -arch=win32 ?setbuf at streambuf@@UAEPAV1 at PADH@Z(ptr ptr long) msvcirt.?setbuf at streambuf@@UAEPAV1 at PADH@Z
@ cdecl -arch=win64 ?setbuf at streambuf@@UEAAPEAV1 at PEADH@Z(ptr ptr long) msvcirt.?setbuf at streambuf@@UEAAPEAV1 at PEADH@Z
-@ stub -arch=win32 ?setbuf at strstreambuf@@UAEPAVstreambuf@@PADH at Z
-@ stub -arch=win64 ?setbuf at strstreambuf@@UEAAPEAVstreambuf@@PEADH at Z
+@ thiscall -arch=win32 ?setbuf at strstreambuf@@UAEPAVstreambuf@@PADH at Z(ptr ptr long) msvcirt.?setbuf at strstreambuf@@UAEPAVstreambuf@@PADH at Z
+@ cdecl -arch=win64 ?setbuf at strstreambuf@@UEAAPEAVstreambuf@@PEADH at Z(ptr ptr long) msvcirt.?setbuf at strstreambuf@@UEAAPEAVstreambuf@@PEADH at Z
@ thiscall -arch=win32 ?setf at ios@@QAEJJ at Z(ptr long) msvcirt.?setf at ios@@QAEJJ at Z
@ cdecl -arch=win64 ?setf at ios@@QEAAJJ at Z(ptr long) msvcirt.?setf at ios@@QEAAJJ at Z
@ thiscall -arch=win32 ?setf at ios@@QAEJJJ at Z(ptr long long) msvcirt.?setf at ios@@QAEJJJ at Z
@@ -789,8 +789,8 @@
@ stub -arch=win64 ?sync at stdiobuf@@UEAAHXZ
@ thiscall -arch=win32 ?sync at streambuf@@UAEHXZ(ptr) msvcirt.?sync at streambuf@@UAEHXZ
@ cdecl -arch=win64 ?sync at streambuf@@UEAAHXZ(ptr) msvcirt.?sync at streambuf@@UEAAHXZ
-@ stub -arch=win32 ?sync at strstreambuf@@UAEHXZ
-@ stub -arch=win64 ?sync at strstreambuf@@UEAAHXZ
+@ thiscall -arch=win32 ?sync at strstreambuf@@UAEHXZ(ptr) msvcirt.?sync at strstreambuf@@UAEHXZ
+@ cdecl -arch=win64 ?sync at strstreambuf@@UEAAHXZ(ptr) msvcirt.?sync at strstreambuf@@UEAAHXZ
@ cdecl ?sync_with_stdio at ios@@SAXXZ() msvcirt.?sync_with_stdio at ios@@SAXXZ
@ stub -arch=win32 ?tellg at istream@@QAEJXZ
@ stub -arch=win64 ?tellg at istream@@QEAAJXZ
@@ -810,8 +810,8 @@
@ cdecl -arch=win64 ?underflow at filebuf@@UEAAHXZ(ptr) msvcirt.?underflow at filebuf@@UEAAHXZ
@ stub -arch=win32 ?underflow at stdiobuf@@UAEHXZ
@ stub -arch=win64 ?underflow at stdiobuf@@UEAAHXZ
-@ stub -arch=win32 ?underflow at strstreambuf@@UAEHXZ
-@ stub -arch=win64 ?underflow at strstreambuf@@UEAAHXZ
+@ thiscall -arch=win32 ?underflow at strstreambuf@@UAEHXZ(ptr) msvcirt.?underflow at strstreambuf@@UAEHXZ
+@ cdecl -arch=win64 ?underflow at strstreambuf@@UEAAHXZ(ptr) msvcirt.?underflow at strstreambuf@@UEAAHXZ
@ cdecl ?unexpected@@YAXXZ() msvcrt.?unexpected@@YAXXZ
@ cdecl -arch=win32 ?unlock at ios@@QAAXXZ(ptr) msvcirt.?unlock at ios@@QAAXXZ
@ cdecl -arch=win64 ?unlock at ios@@QEAAXXZ(ptr) msvcirt.?unlock at ios@@QEAAXXZ
--
2.1.4
More information about the wine-patches
mailing list