Piotr Caban : msvcp90: Added basic_string::reserve implementation.

Alexandre Julliard julliard at winehq.org
Thu Oct 13 14:10:09 CDT 2011


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Thu Oct 13 14:08:14 2011 +0200

msvcp90: Added basic_string::reserve implementation.

---

 dlls/msvcp90/msvcp90.spec |    8 ++++----
 dlls/msvcp90/string.c     |   34 ++++++++++++++++++++++++++++++++++
 2 files changed, 38 insertions(+), 4 deletions(-)

diff --git a/dlls/msvcp90/msvcp90.spec b/dlls/msvcp90/msvcp90.spec
index 25bb0b9..9ace7d7 100644
--- a/dlls/msvcp90/msvcp90.spec
+++ b/dlls/msvcp90/msvcp90.spec
@@ -5167,12 +5167,12 @@
 @ stub -arch=win64 ?replace@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEAAAEAV12 at _K0PEB_W0@Z
 @ stub -arch=win32 ?replace@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAEAAV12 at V?$_String_const_iterator at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@2 at 0PB_WI@Z
 @ stub -arch=win64 ?replace@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEAAAEAV12 at _K0PEB_W@Z
-@ stub -arch=win32 ?reserve@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAEXI at Z
-@ stub -arch=win64 ?reserve@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEAAX_K at Z
+@ thiscall -arch=win32 ?reserve@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAEXI at Z(ptr long) MSVCP_basic_string_char_reserve
+@ cdecl -arch=win64 ?reserve@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEAAX_K at Z(ptr long) MSVCP_basic_string_char_reserve
 @ stub -arch=win32 ?reserve@?$basic_string at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@QAEXI at Z
 @ stub -arch=win64 ?reserve@?$basic_string at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@QEAAX_K at Z
-@ stub -arch=win32 ?reserve@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAEXI at Z
-@ stub -arch=win64 ?reserve@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEAAX_K at Z
+@ thiscall -arch=win32 ?reserve@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAEXI at Z(ptr long) MSVCP_basic_string_wchar_reserve
+@ cdecl -arch=win64 ?reserve@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEAAX_K at Z(ptr long) MSVCP_basic_string_wchar_reserve
 @ stub ?resetiosflags at std@@YA?AU?$_Smanip at H@1 at H@Z
 @ thiscall -arch=win32 ?resize@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAEXI at Z(ptr long) MSVCP_basic_string_char_resize
 @ cdecl -arch=win64 ?resize@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEAAX_K at Z(ptr long) MSVCP_basic_string_char_resize
diff --git a/dlls/msvcp90/string.c b/dlls/msvcp90/string.c
index 59bc270..ba10c20 100644
--- a/dlls/msvcp90/string.c
+++ b/dlls/msvcp90/string.c
@@ -780,6 +780,23 @@ MSVCP_size_t __thiscall MSVCP_basic_string_char_capacity(basic_string_char *this
     return this->res;
 }
 
+/* ?reserve@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAEXI at Z */
+/* ?reserve@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QEAAX_K at Z */
+DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_reserve, 8)
+void __thiscall MSVCP_basic_string_char_reserve(basic_string_char *this, MSVCP_size_t size)
+{
+    MSVCP_size_t len;
+
+    TRACE("%p %ld\n", this, size);
+
+    len = this->size;
+    if(len > size)
+        return;
+
+    basic_string_char_grow(this, size, FALSE);
+    basic_string_char_eos(this, len);
+}
+
 /* ??0?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@QAE at XZ */
 /* ??0?$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_ctor, 4)
@@ -1873,6 +1890,23 @@ MSVCP_size_t __thiscall MSVCP_basic_string_wchar_capacity(basic_string_wchar *th
     return this->res;
 }
 
+/* ?reserve@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAEXI at Z */
+/* ?reserve@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEAAX_K at Z */
+DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_reserve, 8)
+void __thiscall MSVCP_basic_string_wchar_reserve(basic_string_wchar *this, MSVCP_size_t size)
+{
+    MSVCP_size_t len;
+
+    TRACE("%p %ld\n", this, size);
+
+    len = this->size;
+    if(len > size)
+        return;
+
+    basic_string_wchar_grow(this, size, FALSE);
+    basic_string_wchar_eos(this, len);
+}
+
 /* ??0?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAE at XZ */
 /* ??0?$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_ctor, 4)




More information about the wine-cvs mailing list