Piotr Caban : msvcp90: Added basic_string<{char, wchar_t}>.{length, size} implementation.

Alexandre Julliard julliard at winehq.org
Thu Sep 2 12:01:25 CDT 2010


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Thu Sep  2 00:34:57 2010 +0200

msvcp90: Added basic_string<{char, wchar_t}>.{length, size} implementation.

---

 dlls/msvcp90/msvcp90.spec |   16 ++++++++--------
 dlls/msvcp90/string.c     |   22 ++++++++++++++++++++++
 2 files changed, 30 insertions(+), 8 deletions(-)

diff --git a/dlls/msvcp90/msvcp90.spec b/dlls/msvcp90/msvcp90.spec
index 4097ba7..8505614 100644
--- a/dlls/msvcp90/msvcp90.spec
+++ b/dlls/msvcp90/msvcp90.spec
@@ -4456,12 +4456,12 @@
 @ stub ?ldexp@?$_Ctraits at M@std@@SAMMH at Z
 @ stub ?ldexp@?$_Ctraits at N@std@@SANNH at Z
 @ stub ?ldexp@?$_Ctraits at O@std@@SAOOH at Z
-@ stub -arch=win32 ?length@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QBEIXZ
-@ stub -arch=win64 ?length@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEBA_KXZ
+@ thiscall -arch=win32 ?length@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QBEIXZ(ptr) MSVCP_basic_string_char_length
+@ cdecl -arch=win64 ?length@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEBA_KXZ(ptr) MSVCP_basic_string_char_length
 @ stub -arch=win32 ?length@?$basic_string at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@QBEIXZ
 @ stub -arch=win64 ?length@?$basic_string at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@QEBA_KXZ
-@ stub -arch=win32 ?length@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QBEIXZ
-@ stub -arch=win64 ?length@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEBA_KXZ
+@ thiscall -arch=win32 ?length@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QBEIXZ(ptr) MSVCP_basic_string_wchar_length
+@ cdecl -arch=win64 ?length@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEBA_KXZ(ptr) MSVCP_basic_string_wchar_length
 @ cdecl -arch=win32 ?length@?$char_traits at D@std@@SAIPBD at Z(ptr) MSVCP_char_traits_char_length
 @ cdecl -arch=win64 ?length@?$char_traits at D@std@@SA_KPEBD at Z(ptr) MSVCP_char_traits_char_length
 @ cdecl -arch=win32 ?length@?$char_traits at G@std@@SAIPBG at Z(ptr) MSVCP_char_traits_short_length
@@ -5407,12 +5407,12 @@
 @ stub ?sin@?$_Ctraits at M@std@@SAMM at Z
 @ stub ?sin@?$_Ctraits at N@std@@SANN at Z
 @ stub ?sin@?$_Ctraits at O@std@@SAOO at Z
-@ stub -arch=win32 ?size@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QBEIXZ
-@ stub -arch=win64 ?size@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEBA_KXZ
+@ thiscall -arch=win32 ?size@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QBEIXZ(ptr) MSVCP_basic_string_char_length
+@ cdecl -arch=win64 ?size@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEBA_KXZ(ptr) MSVCP_basic_string_char_length
 @ stub -arch=win32 ?size@?$basic_string at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@QBEIXZ
 @ stub -arch=win64 ?size@?$basic_string at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@QEBA_KXZ
-@ stub -arch=win32 ?size@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QBEIXZ
-@ stub -arch=win64 ?size@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEBA_KXZ
+@ thiscall -arch=win32 ?size@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QBEIXZ(ptr) MSVCP_basic_string_wchar_length
+@ cdecl -arch=win64 ?size@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEBA_KXZ(ptr) MSVCP_basic_string_wchar_length
 @ stub -arch=win32 ?snextc@?$basic_streambuf at DU?$char_traits at D@std@@@std@@QAEHXZ
 @ stub -arch=win64 ?snextc@?$basic_streambuf at DU?$char_traits at D@std@@@std@@QEAAHXZ
 @ stub -arch=win32 ?snextc@?$basic_streambuf at GU?$char_traits at G@std@@@std@@QAEGXZ
diff --git a/dlls/msvcp90/string.c b/dlls/msvcp90/string.c
index 5b4b11f..291d158 100644
--- a/dlls/msvcp90/string.c
+++ b/dlls/msvcp90/string.c
@@ -742,6 +742,17 @@ void __thiscall MSVCP_basic_string_char_dtor(basic_string_char *this)
     basic_string_char_tidy(this, TRUE, 0);
 }
 
+/* ?size@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QBEIXZ */
+/* ?size@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEBA_KXZ */
+/* ?length@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QBEIXZ */
+/* ?length@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEBA_KXZ */
+DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_length, 4)
+size_t __thiscall MSVCP_basic_string_char_length(basic_string_char *this)
+{
+    TRACE("%p\n", this);
+    return this->size;
+}
+
 
 /* basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t>> */
 /* ?npos@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@2IB */
@@ -989,3 +1000,14 @@ void __thiscall MSVCP_basic_string_wchar_dtor(basic_string_wchar *this)
     TRACE("%p\n", this);
     basic_string_wchar_tidy(this, TRUE, 0);
 }
+
+/* ?size@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QBEIXZ */
+/* ?size@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEBA_KXZ */
+/* ?length@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QBEIXZ */
+/* ?length@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEBA_KXZ */
+DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_length, 4)
+size_t __thiscall MSVCP_basic_string_wchar_length(basic_string_wchar *this)
+{
+    TRACE("%p\n", this);
+    return this->size;
+}




More information about the wine-cvs mailing list