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