[3/3] msvcirt: Add implementation of streambuf::dbp

Iván Matellanes matellanesivan at gmail.com
Mon Jun 29 03:01:58 CDT 2015


---
 dlls/msvcirt/msvcirt.c      | 16 ++++++++++++++++
 dlls/msvcirt/msvcirt.spec   |  4 ++--
 dlls/msvcrt20/msvcrt20.spec |  4 ++--
 dlls/msvcrt40/msvcrt40.spec |  4 ++--
 4 files changed, 22 insertions(+), 6 deletions(-)

diff --git a/dlls/msvcirt/msvcirt.c b/dlls/msvcirt/msvcirt.c
index a56fd61..0979673 100644
--- a/dlls/msvcirt/msvcirt.c
+++ b/dlls/msvcirt/msvcirt.c
@@ -667,6 +667,22 @@ int __thiscall streambuf_sputbackc(streambuf *this, char ch)
     return call_streambuf_pbackfail(this, ch);
 }
 
+/* ?dbp at streambuf@@QAEXXZ */
+/* ?dbp at streambuf@@QEAAXXZ */
+DEFINE_THISCALL_WRAPPER(streambuf_dbp, 4)
+void __thiscall streambuf_dbp(streambuf *this)
+{
+    printf("\nSTREAMBUF DEBUG INFO: this=%p, ", this);
+    if (this->unbuffered) {
+        printf("unbuffered\n");
+    } else {
+        printf("_fAlloc=%d\n", this->allocated);
+        printf(" base()=%p, ebuf()=%p,  blen()=%d\n", this->base, this->ebuf, streambuf_blen(this));
+        printf("pbase()=%p, pptr()=%p, epptr()=%d\n", this->pbase, this->pptr, this->epptr);
+        printf("eback()=%p, gptr()=%p, egptr()=%d\n", this->eback, this->gptr, this->egptr);
+    }
+}
+
 /******************************************************************
  *		 ??1ios@@UAE at XZ (MSVCRTI.@)
  *        class ios & __thiscall ios::-ios<<(void)
diff --git a/dlls/msvcirt/msvcirt.spec b/dlls/msvcirt/msvcirt.spec
index f14821e..0c9e520 100644
--- a/dlls/msvcirt/msvcirt.spec
+++ b/dlls/msvcirt/msvcirt.spec
@@ -437,8 +437,8 @@
 @ thiscall -arch=win32 ?clrlock at streambuf@@QAEXXZ(ptr) streambuf_clrlock
 @ cdecl -arch=win64 ?clrlock at streambuf@@QEAAXXZ(ptr) streambuf_clrlock
 @ stub ?cout@@3Vostream_withassign@@A  # class ostream_withassign cout
-@ stub -arch=win32 ?dbp at streambuf@@QAEXXZ  # void __thiscall streambuf::dbp(void)
-@ stub -arch=win64 ?dbp at streambuf@@QEAAXXZ
+@ thiscall -arch=win32 ?dbp at streambuf@@QAEXXZ(ptr) streambuf_dbp
+@ cdecl -arch=win64 ?dbp at streambuf@@QEAAXXZ(ptr) streambuf_dbp
 @ stub -arch=win32 ?dec@@YAAAVios@@AAV1@@Z  # class ios & __cdecl dec(class ios &)
 @ stub -arch=win64 ?dec@@YAAEAVios@@AEAV1@@Z
 @ stub -arch=win32 ?delbuf at ios@@QAEXH at Z  # void __thiscall ios::delbuf(int)
diff --git a/dlls/msvcrt20/msvcrt20.spec b/dlls/msvcrt20/msvcrt20.spec
index c7dd035..c7b28bd 100644
--- a/dlls/msvcrt20/msvcrt20.spec
+++ b/dlls/msvcrt20/msvcrt20.spec
@@ -425,8 +425,8 @@
 @ thiscall -arch=win32 ?clrlock at streambuf@@QAEXXZ(ptr) msvcirt.?clrlock at streambuf@@QAEXXZ
 @ cdecl -arch=win64 ?clrlock at streambuf@@QEAAXXZ(ptr) msvcirt.?clrlock at streambuf@@QEAAXXZ
 @ stub ?cout@@3Vostream_withassign@@A
-@ stub -arch=win32 ?dbp at streambuf@@QAEXXZ
-@ stub -arch=win64 ?dbp at streambuf@@QEAAXXZ
+@ thiscall -arch=win32 ?dbp at streambuf@@QAEXXZ(ptr) msvcirt.?dbp at streambuf@@QAEXXZ
+@ cdecl -arch=win64 ?dbp at streambuf@@QEAAXXZ(ptr) msvcirt.?dbp at streambuf@@QEAAXXZ
 @ stub -arch=win32 ?dec@@YAAAVios@@AAV1@@Z
 @ stub -arch=win64 ?dec@@YAAEAVios@@AEAV1@@Z
 @ stub -arch=win32 ?delbuf at ios@@QAEXH at Z
diff --git a/dlls/msvcrt40/msvcrt40.spec b/dlls/msvcrt40/msvcrt40.spec
index bda6e2c..49df71c 100644
--- a/dlls/msvcrt40/msvcrt40.spec
+++ b/dlls/msvcrt40/msvcrt40.spec
@@ -490,8 +490,8 @@
 @ thiscall -arch=win32 ?clrlock at streambuf@@QAEXXZ(ptr) msvcirt.?clrlock at streambuf@@QAEXXZ
 @ cdecl -arch=win64 ?clrlock at streambuf@@QEAAXXZ(ptr) msvcirt.?clrlock at streambuf@@QEAAXXZ
 @ stub ?cout@@3Vostream_withassign@@A
-@ stub -arch=win32 ?dbp at streambuf@@QAEXXZ
-@ stub -arch=win64 ?dbp at streambuf@@QEAAXXZ
+@ thiscall -arch=win32 ?dbp at streambuf@@QAEXXZ(ptr) msvcirt.?dbp at streambuf@@QAEXXZ
+@ cdecl -arch=win64 ?dbp at streambuf@@QEAAXXZ(ptr) msvcirt.?dbp at streambuf@@QEAAXXZ
 @ stub -arch=win32 ?dec@@YAAAVios@@AAV1@@Z
 @ stub -arch=win64 ?dec@@YAAEAVios@@AEAV1@@Z
 @ stub -arch=win32 ?delbuf at ios@@QAEXH at Z
-- 
2.1.4




More information about the wine-patches mailing list