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

Alexandre Julliard julliard at winehq.org
Tue Sep 13 12:18:09 CDT 2011


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Tue Sep 13 10:31:27 2011 +0200

msvcp90: Added basic_string::_Pdif implementation.

---

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

diff --git a/dlls/msvcp90/msvcp90.spec b/dlls/msvcp90/msvcp90.spec
index 515e05f..51a2ea1 100644
--- a/dlls/msvcp90/msvcp90.spec
+++ b/dlls/msvcp90/msvcp90.spec
@@ -2676,12 +2676,12 @@
 @ stub -arch=win64 ?_Osfx@?$basic_ostream at GU?$char_traits at G@std@@@std@@QEAAXXZ
 @ stub -arch=win32 ?_Osfx@?$basic_ostream at _WU?$char_traits at _W@std@@@std@@QAEXXZ
 @ stub -arch=win64 ?_Osfx@?$basic_ostream at _WU?$char_traits at _W@std@@@std@@QEAAXXZ
-@ stub -arch=win32 ?_Pdif@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@KAIV?$_String_const_iterator at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at 0@Z
-@ stub -arch=win64 ?_Pdif@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@KA_KV?$_String_const_iterator at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at 0@Z
+@ cdecl -arch=win32 ?_Pdif@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@KAIV?$_String_const_iterator at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at 0@Z(ptr ptr ptr ptr) MSVCP_basic_string_char_Pdif
+@ cdecl -arch=win64 ?_Pdif@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@KA_KV?$_String_const_iterator at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at 0@Z(ptr ptr) MSVCP_basic_string_char_Pdif
 @ stub -arch=win32 ?_Pdif@?$basic_string at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@KAIV?$_String_const_iterator at GU?$char_traits at G@std@@V?$allocator at G@2@@2 at 0@Z
 @ stub -arch=win64 ?_Pdif@?$basic_string at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@KA_KV?$_String_const_iterator at GU?$char_traits at G@std@@V?$allocator at G@2@@2 at 0@Z
-@ stub -arch=win32 ?_Pdif@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@KAIV?$_String_const_iterator at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@2 at 0@Z
-@ stub -arch=win64 ?_Pdif@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@KA_KV?$_String_const_iterator at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@2 at 0@Z
+@ cdecl -arch=win32 ?_Pdif@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@KAIV?$_String_const_iterator at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@2 at 0@Z(ptr ptr ptr ptr) MSVCP_basic_string_wchar_Pdif
+@ cdecl -arch=win64 ?_Pdif@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@KA_KV?$_String_const_iterator at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@2 at 0@Z(ptr ptr ptr ptr) MSVCP_basic_string_wchar_Pdif
 @ thiscall -arch=win32 ?_Pnavail@?$basic_streambuf at DU?$char_traits at D@std@@@std@@IBEHXZ(ptr) basic_streambuf_char__Pnavail
 @ cdecl -arch=win64 ?_Pnavail@?$basic_streambuf at DU?$char_traits at D@std@@@std@@IEBA_JXZ(ptr) basic_streambuf_char__Pnavail
 @ stub -arch=win32 ?_Pnavail@?$basic_streambuf at GU?$char_traits at G@std@@@std@@IBEHXZ
diff --git a/dlls/msvcp90/string.c b/dlls/msvcp90/string.c
index 47c0c03..300c8bd 100644
--- a/dlls/msvcp90/string.c
+++ b/dlls/msvcp90/string.c
@@ -1505,6 +1505,20 @@ String_reverse_iterator_char __thiscall MSVCP_basic_string_char_rend(basic_strin
     return ret;
 }
 
+/* ?_Pdif@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@KAIV?$_String_const_iterator at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at 0@Z */
+/* ?_Pdif@?$basic_string at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@KA_KV?$_String_const_iterator at DU?$char_traits at D@std@@V?$allocator at D@2@@2 at 0@Z */
+MSVCP_size_t __cdecl MSVCP_basic_string_char_Pdif(String_iterator_char i1, String_iterator_char i2)
+{
+    TRACE("(%p %p) (%p %p)\n", i1.bstr, i1.pos, i2.bstr, i2.pos);
+
+    if((!i1.bstr && i1.pos) || i1.bstr!=i2.bstr) {
+        _invalid_parameter(NULL, NULL, NULL, 0, 0);
+        return 0;
+    }
+
+    return !i1.pos ? 0 : i1.pos-i2.pos;
+}
+
 /* 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 */
 /* ?npos@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@2_KB */
@@ -2492,3 +2506,17 @@ String_reverse_iterator_wchar __thiscall MSVCP_basic_string_wchar_rend(basic_str
     ret.pos = basic_string_wchar_const_ptr(this);
     return ret;
 }
+
+/* ?_Pdif@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@KAIV?$_String_const_iterator at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@2 at 0@Z */
+/* ?_Pdif@?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@KA_KV?$_String_const_iterator at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@2 at 0@Z */
+MSVCP_size_t __cdecl MSVCP_basic_string_wchar_Pdif(String_iterator_wchar i1, String_iterator_wchar i2)
+{
+    TRACE("(%p %p) (%p %p)\n", i1.bstr, i1.pos, i2.bstr, i2.pos);
+
+    if((!i1.bstr && i1.pos) || i1.bstr!=i2.bstr) {
+        _invalid_parameter(NULL, NULL, NULL, 0, 0);
+        return 0;
+    }
+
+    return !i1.pos ? 0 : i1.pos-i2.pos;
+}




More information about the wine-cvs mailing list