Piotr Caban : msvcp100: Added _Container_base12 class implementation.

Alexandre Julliard julliard at winehq.org
Tue Nov 27 14:30:48 CST 2012


Module: wine
Branch: master
Commit: de8fe962c1e9c4a985741316486a38f4c8336271
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=de8fe962c1e9c4a985741316486a38f4c8336271

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Mon Nov 26 22:33:03 2012 +0000

msvcp100: Added _Container_base12 class implementation.

---

 dlls/msvcp100/misc.c        |   84 +++++++++++++++++++++++++++++++++++++++++++
 dlls/msvcp100/msvcp100.spec |   28 +++++++-------
 2 files changed, 98 insertions(+), 14 deletions(-)

diff --git a/dlls/msvcp100/misc.c b/dlls/msvcp100/misc.c
index 13183bb..55a19ee 100644
--- a/dlls/msvcp100/misc.c
+++ b/dlls/msvcp100/misc.c
@@ -28,6 +28,22 @@
 #include "wine/debug.h"
 WINE_DEFAULT_DEBUG_CHANNEL(msvcp);
 
+struct __Container_proxy;
+
+typedef struct {
+    struct __Container_proxy *proxy;
+} _Container_base12;
+
+typedef struct __Iterator_base12 {
+    struct __Container_proxy *proxy;
+    struct __Iterator_base12 *next;
+} _Iterator_base12;
+
+typedef struct __Container_proxy {
+    const _Container_base12 *cont;
+    _Iterator_base12 *head;
+} _Container_proxy;
+
 /* ??0_Mutex at std@@QAE at XZ */
 /* ??0_Mutex at std@@QEAA at XZ */
 DEFINE_THISCALL_WRAPPER(mutex_ctor, 4)
@@ -259,3 +275,71 @@ void* __thiscall Container_base0_op_assign(void *this, const void *that)
 {
     return this;
 }
+
+/* ??0_Container_base12 at std@@QAE at ABU01@@Z */
+/* ??0_Container_base12 at std@@QEAA at AEBU01@@Z */
+DEFINE_THISCALL_WRAPPER(_Container_base12_copy_ctor, 8)
+_Container_base12* __thiscall _Container_base12_copy_ctor(
+        _Container_base12 *this, _Container_base12 *that)
+{
+    this->proxy = NULL;
+    return this;
+}
+
+/* ??0_Container_base12 at std@@QAE at XZ */
+/* ??0_Container_base12 at std@@QEAA at XZ */
+DEFINE_THISCALL_WRAPPER(_Container_base12_ctor, 4)
+_Container_base12* __thiscall _Container_base12_ctor(_Container_base12 *this)
+{
+    this->proxy = NULL;
+    return this;
+}
+
+/* ??1_Container_base12 at std@@QAE at XZ */
+/* ??1_Container_base12 at std@@QEAA at XZ */
+DEFINE_THISCALL_WRAPPER(_Container_base12_dtor, 4)
+void __thiscall _Container_base12_dtor(_Container_base12 *this)
+{
+}
+
+/* ??4_Container_base12 at std@@QAEAAU01 at ABU01@@Z */
+/* ??4_Container_base12 at std@@QEAAAEAU01 at AEBU01@@ */
+DEFINE_THISCALL_WRAPPER(_Container_base12_op_assign, 8)
+_Container_base12* __thiscall _Container_base12_op_assign(
+        _Container_base12 *this, const _Container_base12 *that)
+{
+    return this;
+}
+
+/* ?_Getpfirst at _Container_base12@std@@QBEPAPAU_Iterator_base12 at 2@XZ */
+/* ?_Getpfirst at _Container_base12@std@@QEBAPEAPEAU_Iterator_base12 at 2@XZ */
+DEFINE_THISCALL_WRAPPER(_Container_base12__Getpfirst, 4)
+_Iterator_base12** __thiscall _Container_base12__Getpfirst(_Container_base12 *this)
+{
+    return this->proxy ? &this->proxy->head : NULL;
+}
+
+/* ?_Orphan_all at _Container_base12@std@@QAEXXZ */
+/* ?_Orphan_all at _Container_base12@std@@QEAAXXZ */
+DEFINE_THISCALL_WRAPPER(_Container_base12__Orphan_all, 4)
+void __thiscall _Container_base12__Orphan_all(_Container_base12 *this)
+{
+}
+
+/* ?_Swap_all at _Container_base12@std@@QAEXAAU12@@Z */
+/* ?_Swap_all at _Container_base12@std@@QEAAXAEAU12@@Z */
+DEFINE_THISCALL_WRAPPER(_Container_base12__Swap_all, 8)
+void __thiscall _Container_base12__Swap_all(
+        _Container_base12 *this, _Container_base12 *that)
+{
+    _Container_proxy *tmp;
+
+    tmp = this->proxy;
+    this->proxy = that->proxy;
+    that->proxy = tmp;
+
+    if(this->proxy)
+        this->proxy->cont = this;
+    if(that->proxy)
+        that->proxy->cont = that;
+}
diff --git a/dlls/msvcp100/msvcp100.spec b/dlls/msvcp100/msvcp100.spec
index 4ed384e..e4ac191 100644
--- a/dlls/msvcp100/msvcp100.spec
+++ b/dlls/msvcp100/msvcp100.spec
@@ -176,10 +176,10 @@
 @ stub -arch=win64 ??0_Concurrent_queue_base_v4 at details@Concurrency@@IEAA at _K@Z
 @ stub -arch=win32 ??0_Concurrent_queue_iterator_base_v4 at details@Concurrency@@IAE at ABV_Concurrent_queue_base_v4@12@@Z
 @ stub -arch=win64 ??0_Concurrent_queue_iterator_base_v4 at details@Concurrency@@IEAA at AEBV_Concurrent_queue_base_v4@12@@Z
-@ stub -arch=win32 ??0_Container_base12 at std@@QAE at ABU01@@Z
-@ stub -arch=win64 ??0_Container_base12 at std@@QEAA at AEBU01@@Z
-@ stub -arch=win32 ??0_Container_base12 at std@@QAE at XZ
-@ stub -arch=win64 ??0_Container_base12 at std@@QEAA at XZ
+@ thiscall -arch=win32 ??0_Container_base12 at std@@QAE at ABU01@@Z(ptr ptr) _Container_base12_copy_ctor
+@ cdecl -arch=win64 ??0_Container_base12 at std@@QEAA at AEBU01@@Z(ptr ptr) _Container_base12_copy_ctor
+@ thiscall -arch=win32 ??0_Container_base12 at std@@QAE at XZ(ptr) _Container_base12_ctor
+@ cdecl -arch=win64 ??0_Container_base12 at std@@QEAA at XZ(ptr) _Container_base12_ctor
 @ stub -arch=win32 ??0_Init_locks at std@@QAE at XZ
 @ stub -arch=win64 ??0_Init_locks at std@@QEAA at XZ
 @ thiscall -arch=win32 ??0_Locimp at locale@std@@AAE at ABV012@@Z(ptr ptr) locale__Locimp_copy_ctor
@@ -306,8 +306,8 @@
 @ stub -arch=win64 ??1_Concurrent_queue_iterator_base_v4 at details@Concurrency@@IEAA at XZ
 @ stub -arch=win32 ??1_Concurrent_vector_base_v4 at details@Concurrency@@IAE at XZ
 @ stub -arch=win64 ??1_Concurrent_vector_base_v4 at details@Concurrency@@IEAA at XZ
-@ stub -arch=win32 ??1_Container_base12 at std@@QAE at XZ
-@ stub -arch=win64 ??1_Container_base12 at std@@QEAA at XZ
+@ thiscall -arch=win32 ??1_Container_base12 at std@@QAE at XZ(ptr) _Container_base12_dtor
+@ cdecl -arch=win64 ??1_Container_base12 at std@@QEAA at XZ(ptr) _Container_base12_dtor
 @ stub -arch=win32 ??1_Init_locks at std@@QAE at XZ
 @ stub -arch=win64 ??1_Init_locks at std@@QEAA at XZ
 @ thiscall -arch=win32 ??1_Locimp at locale@std@@MAE at XZ(ptr) locale__Locimp_dtor
@@ -402,8 +402,8 @@
 @ cdecl -arch=win64 ??4Init at ios_base@std@@QEAAAEAV012 at AEBV012@@Z(ptr ptr) ios_base_Init_op_assign
 @ thiscall -arch=win32 ??4_Container_base0 at std@@QAEAAU01 at ABU01@@Z(ptr ptr) Container_base0_op_assign
 @ cdecl -arch=win64 ??4_Container_base0 at std@@QEAAAEAU01 at AEBU01@@Z(ptr ptr) Container_base0_op_assign
-@ stub -arch=win32 ??4_Container_base12 at std@@QAEAAU01 at ABU01@@Z
-@ stub -arch=win64 ??4_Container_base12 at std@@QEAAAEAU01 at AEBU01@@Z
+@ thiscall -arch=win32 ??4_Container_base12 at std@@QAEAAU01 at ABU01@@Z(ptr ptr) _Container_base12_op_assign
+@ cdecl -arch=win64 ??4_Container_base12 at std@@QEAAAEAU01 at AEBU01@@Z(ptr ptr) _Container_base12_op_assign
 @ stub -arch=win32 ??4_Init_locks at std@@QAEAAV01 at ABV01@@Z
 @ stub -arch=win64 ??4_Init_locks at std@@QEAAAEAV01 at AEBV01@@Z
 @ thiscall -arch=win32 ??4_Num_base at std@@QAEAAU01 at ABU01@@Z(ptr ptr) std_Num_base_op_assign
@@ -897,8 +897,8 @@
 @ cdecl -arch=win64 ?_Getmonths at _Locinfo@std@@QEBAPEBDXZ(ptr) _Locinfo__Getmonths
 @ stub -arch=win32 ?_Getname at _Locinfo@std@@QBEPBDXZ
 @ stub -arch=win64 ?_Getname at _Locinfo@std@@QEBAPEBDXZ
-@ stub -arch=win32 ?_Getpfirst at _Container_base12@std@@QBEPAPAU_Iterator_base12 at 2@XZ
-@ stub -arch=win64 ?_Getpfirst at _Container_base12@std@@QEBAPEAPEAU_Iterator_base12 at 2@XZ
+@ thiscall -arch=win32 ?_Getpfirst at _Container_base12@std@@QBEPAPAU_Iterator_base12 at 2@XZ(ptr) _Container_base12__Getpfirst
+@ cdecl -arch=win64 ?_Getpfirst at _Container_base12@std@@QEBAPEAPEAU_Iterator_base12 at 2@XZ(ptr) _Container_base12__Getpfirst
 @ thiscall -arch=win32 ?_Getptr at _Timevec@std@@QBEPAXXZ(ptr) _Timevec__Getptr
 @ cdecl -arch=win64 ?_Getptr at _Timevec@std@@QEBAPEAXXZ(ptr) _Timevec__Getptr
 @ thiscall -arch=win32 ?_Gettnames at _Locinfo@std@@QBE?AV_Timevec at 2@XZ(ptr ptr) _Locinfo__Gettnames
@@ -1125,8 +1125,8 @@
 @ cdecl ?_Nomemory at std@@YAXXZ() _Nomemory
 @ thiscall -arch=win32 ?_Orphan_all at _Container_base0@std@@QAEXXZ(ptr) Container_base0_Orphan_all
 @ cdecl -arch=win64 ?_Orphan_all at _Container_base0@std@@QEAAXXZ(ptr) Container_base0_Orphan_all
-@ stub -arch=win32 ?_Orphan_all at _Container_base12@std@@QAEXXZ
-@ stub -arch=win64 ?_Orphan_all at _Container_base12@std@@QEAAXXZ
+@ thiscall -arch=win32 ?_Orphan_all at _Container_base12@std@@QAEXXZ(ptr) _Container_base12__Orphan_all
+@ cdecl -arch=win64 ?_Orphan_all at _Container_base12@std@@QEAAXXZ(ptr) _Container_base12__Orphan_all
 @ thiscall -arch=win32 ?_Osfx@?$basic_ostream at DU?$char_traits at D@std@@@std@@QAEXXZ(ptr) basic_ostream_char__Osfx
 @ cdecl -arch=win64 ?_Osfx@?$basic_ostream at DU?$char_traits at D@std@@@std@@QEAAXXZ(ptr) basic_ostream_char__Osfx
 @ thiscall -arch=win32 ?_Osfx@?$basic_ostream at GU?$char_traits at G@std@@@std@@QAEXXZ(ptr) basic_ostream_wchar__Osfx
@@ -1204,8 +1204,8 @@
 @ cdecl -arch=win64 ?_Setgloballocale at locale@std@@CAXPEAX at Z(ptr) locale__Setgloballocale
 @ thiscall -arch=win32 ?_Swap_all at _Container_base0@std@@QAEXAAU12@@Z(ptr ptr) Container_base0_Swap_all
 @ cdecl -arch=win64 ?_Swap_all at _Container_base0@std@@QEAAXAEAU12@@Z(ptr ptr) Container_base0_Swap_all
-@ stub -arch=win32 ?_Swap_all at _Container_base12@std@@QAEXAAU12@@Z
-@ stub -arch=win64 ?_Swap_all at _Container_base12@std@@QEAAXAEAU12@@Z
+@ thiscall -arch=win32 ?_Swap_all at _Container_base12@std@@QAEXAAU12@@Z(ptr ptr) _Container_base12__Swap_all
+@ cdecl -arch=win64 ?_Swap_all at _Container_base12@std@@QEAAXAEAU12@@Z(ptr ptr) _Container_base12__Swap_all
 @ extern ?_Sync at ios_base@std@@0_NA ios_base_Sync
 @ thiscall -arch=win32 ?_Tidy@?$_Yarn at D@std@@AAEXXZ(ptr) _Yarn_char__Tidy
 @ cdecl -arch=win64 ?_Tidy@?$_Yarn at D@std@@AEAAXXZ(ptr) _Yarn_char__Tidy




More information about the wine-cvs mailing list