Piotr Caban : msvcp90: Added basic_string<{char, wchar}> constructor ( substring) implementation.

Alexandre Julliard julliard at winehq.org
Thu Nov 25 11:18:52 CST 2010


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Wed Nov 24 19:58:45 2010 +0100

msvcp90: Added basic_string<{char,wchar}> constructor (substring) implementation.

---

 dlls/msvcp80/msvcp80.spec |    8 ++++----
 dlls/msvcp90/msvcp90.spec |    8 ++++----
 dlls/msvcp90/string.c     |   28 ++++++++++++++++++++++++++++
 3 files changed, 36 insertions(+), 8 deletions(-)

diff --git a/dlls/msvcp80/msvcp80.spec b/dlls/msvcp80/msvcp80.spec
index 3cadb5f..23576f5 100644
--- a/dlls/msvcp80/msvcp80.spec
+++ b/dlls/msvcp80/msvcp80.spec
@@ -740,8 +740,8 @@
 @ stub -arch=win64 ??0?$basic_streambuf at _WU?$char_traits at _W@std@@@std@@IEAA at XZ
 @ thiscall -arch=win32 ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAE at ABV01@@Z(ptr ptr) msvcp90.??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAE at ABV01@@Z
 @ cdecl -arch=win64 ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEAA at AEBV01@@Z(ptr ptr) msvcp90.??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEAA at AEBV01@@Z
-@ stub -arch=win32 ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAE at ABV01@II at Z
-@ stub -arch=win64 ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEAA at AEBV01@_K1 at Z
+@ thiscall -arch=win32 ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAE at ABV01@II at Z(ptr ptr long long) msvcp90.??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAE at ABV01@II at Z
+@ cdecl -arch=win64 ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEAA at AEBV01@_K1 at Z(ptr ptr long long) msvcp90.??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEAA at AEBV01@_K1 at Z
 @ stub -arch=win32 ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAE at ABV01@IIABV?$allocator at D@1@@Z
 @ stub -arch=win64 ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEAA at AEBV01@_K1AEBV?$allocator at D@1@@Z
 @ stub -arch=win32 ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAE at ABV?$allocator at D@1@@Z
@@ -792,8 +792,8 @@
 @ stub -arch=win64 ??0?$basic_string at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@QEAA at _KGAEBV?$allocator at G@1@@Z
 @ thiscall -arch=win32 ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAE at ABV01@@Z(ptr ptr) msvcp90.??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAE at ABV01@@Z
 @ cdecl -arch=win64 ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEAA at AEBV01@@Z(ptr ptr) msvcp90.??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEAA at AEBV01@@Z
-@ stub -arch=win32 ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAE at ABV01@II at Z
-@ stub -arch=win64 ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEAA at AEBV01@_K1 at Z
+@ thiscall -arch=win32 ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAE at ABV01@II at Z(ptr ptr long long) msvcp90.??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAE at ABV01@II at Z
+@ cdecl -arch=win64 ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEAA at AEBV01@_K1 at Z(ptr ptr long long) msvcp90.??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEAA at AEBV01@_K1 at Z
 @ stub -arch=win32 ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAE at ABV01@IIABV?$allocator at _W@1@@Z
 @ stub -arch=win64 ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEAA at AEBV01@_K1AEBV?$allocator at _W@1@@Z
 @ stub -arch=win32 ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAE at ABV?$allocator at _W@1@@Z
diff --git a/dlls/msvcp90/msvcp90.spec b/dlls/msvcp90/msvcp90.spec
index f41cf79..4162234 100644
--- a/dlls/msvcp90/msvcp90.spec
+++ b/dlls/msvcp90/msvcp90.spec
@@ -734,8 +734,8 @@
 @ stub -arch=win64 ??0?$basic_streambuf at _WU?$char_traits at _W@std@@@std@@IEAA at XZ
 @ thiscall -arch=win32 ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAE at ABV01@@Z(ptr ptr) MSVCP_basic_string_char_copy_ctor
 @ cdecl -arch=win64 ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEAA at AEBV01@@Z(ptr ptr) MSVCP_basic_string_char_copy_ctor
-@ stub -arch=win32 ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAE at ABV01@II at Z
-@ stub -arch=win64 ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEAA at AEBV01@_K1 at Z
+@ thiscall -arch=win32 ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAE at ABV01@II at Z(ptr ptr long long) MSVCP_basic_string_char_ctor_substr
+@ cdecl -arch=win64 ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEAA at AEBV01@_K1 at Z(ptr ptr long long) MSVCP_basic_string_char_ctor_substr
 @ stub -arch=win32 ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAE at ABV01@IIABV?$allocator at D@1@@Z
 @ stub -arch=win64 ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEAA at AEBV01@_K1AEBV?$allocator at D@1@@Z
 @ stub -arch=win32 ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAE at ABV?$allocator at D@1@@Z
@@ -786,8 +786,8 @@
 @ stub -arch=win64 ??0?$basic_string at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@QEAA at _KGAEBV?$allocator at G@1@@Z
 @ thiscall -arch=win32 ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAE at ABV01@@Z(ptr ptr) MSVCP_basic_string_wchar_copy_ctor
 @ cdecl -arch=win64 ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEAA at AEBV01@@Z(ptr ptr) MSVCP_basic_string_wchar_copy_ctor
-@ stub -arch=win32 ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAE at ABV01@II at Z
-@ stub -arch=win64 ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEAA at AEBV01@_K1 at Z
+@ thiscall -arch=win32 ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAE at ABV01@II at Z(ptr ptr long long) MSVCP_basic_string_wchar_ctor_substr
+@ cdecl -arch=win64 ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEAA at AEBV01@_K1 at Z(ptr ptr long long) MSVCP_basic_string_wchar_ctor_substr
 @ stub -arch=win32 ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAE at ABV01@IIABV?$allocator at _W@1@@Z
 @ stub -arch=win64 ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEAA at AEBV01@_K1AEBV?$allocator at _W@1@@Z
 @ stub -arch=win32 ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAE at ABV?$allocator at _W@1@@Z
diff --git a/dlls/msvcp90/string.c b/dlls/msvcp90/string.c
index db9022f..38e6366 100644
--- a/dlls/msvcp90/string.c
+++ b/dlls/msvcp90/string.c
@@ -737,6 +737,20 @@ basic_string_char* __thiscall MSVCP_basic_string_char_ctor_cstr(
     return this;
 }
 
+/* ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAE at ABV01@II at Z */
+/* ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEAA at AEBV01@_K1 at Z */
+DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_ctor_substr, 16)
+basic_string_char* __thiscall MSVCP_basic_string_char_ctor_substr(
+        basic_string_char *this, const basic_string_char *assign,
+        size_t pos, size_t len)
+{
+    TRACE("%p %p %lu %lu\n", this, assign, (unsigned long)pos, (unsigned long)len);
+
+    basic_string_char_tidy(this, FALSE, 0);
+    MSVCP_basic_string_char_assign_substr(this, assign, pos, len);
+    return this;
+}
+
 /* ??1?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAE at XZ */
 /* ??1?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEAA at XZ */
 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_dtor, 4)
@@ -1029,6 +1043,20 @@ basic_string_wchar* __thiscall MSVCP_basic_string_wchar_ctor_cstr(
     return this;
 }
 
+/* ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAE at ABV01@II at Z */
+/* ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEAA at AEBV01@_K1 at Z */
+DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_ctor_substr, 16)
+basic_string_wchar* __thiscall MSVCP_basic_string_wchar_ctor_substr(
+        basic_string_wchar *this, const basic_string_wchar *assign,
+        size_t pos, size_t len)
+{
+    TRACE("%p %p %lu %lu\n", this, assign, (unsigned long)pos, (unsigned long)len);
+
+    basic_string_wchar_tidy(this, FALSE, 0);
+    MSVCP_basic_string_wchar_assign_substr(this, assign, pos, len);
+    return this;
+}
+
 /* ??1?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAE at XZ */
 /* ??1?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEAA at XZ */
 DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_dtor, 4)




More information about the wine-cvs mailing list