Piotr Caban : msvcrt: Add __ExceptionPtrCompare implementation.

Alexandre Julliard julliard at winehq.org
Thu Jul 20 12:11:28 CDT 2017


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Fri Mar 24 12:45:14 2017 +0100

msvcrt: Add __ExceptionPtrCompare implementation.

Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
(cherry picked from commit cf7f632b31965b1f8ff6a4a69369326c4f146492)
Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>

---

 dlls/msvcp140/msvcp140.spec         | 4 ++--
 dlls/msvcr100/msvcr100.spec         | 4 ++--
 dlls/msvcr110/msvcr110.spec         | 4 ++--
 dlls/msvcr120/msvcr120.spec         | 4 ++--
 dlls/msvcr120_app/msvcr120_app.spec | 4 ++--
 dlls/msvcrt/cpp.c                   | 5 +++++
 6 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/dlls/msvcp140/msvcp140.spec b/dlls/msvcp140/msvcp140.spec
index 8e92019..d373070 100644
--- a/dlls/msvcp140/msvcp140.spec
+++ b/dlls/msvcp140/msvcp140.spec
@@ -1691,8 +1691,8 @@
 @ cdecl -arch=win64 ?_Xruntime_error at std@@YAXPEBD at Z(str) _Xruntime_error
 @ stub -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX at Z
 @ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX at Z
-@ stub -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0 at Z
-@ stub -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0 at Z
+@ cdecl -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0 at Z(ptr ptr) msvcr120.?__ExceptionPtrCompare@@YA_NPBX0 at Z
+@ cdecl -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0 at Z(ptr ptr) msvcr120.?__ExceptionPtrCompare@@YA_NPEBX0 at Z
 @ cdecl -arch=win32 ?__ExceptionPtrCopy@@YAXPAXPBX at Z(ptr ptr) msvcr120.?__ExceptionPtrCopy@@YAXPAXPBX at Z
 @ cdecl -arch=win64 ?__ExceptionPtrCopy@@YAXPEAXPEBX at Z(ptr ptr) msvcr120.?__ExceptionPtrCopy@@YAXPEAXPEBX at Z
 @ cdecl -arch=win32 ?__ExceptionPtrCopyException@@YAXPAXPBX1 at Z(ptr ptr ptr) msvcr120.?__ExceptionPtrCopyException@@YAXPAXPBX1 at Z
diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec
index 62815b6..739e408 100644
--- a/dlls/msvcr100/msvcr100.spec
+++ b/dlls/msvcr100/msvcr100.spec
@@ -410,8 +410,8 @@
 @ cdecl ?_Value at _SpinCount@details at Concurrency@@SAIXZ() SpinCount__Value
 @ stub -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX at Z
 @ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX at Z
-@ stub -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0 at Z
-@ stub -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0 at Z
+@ cdecl -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0 at Z(ptr ptr) __ExceptionPtrCompare
+@ cdecl -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0 at Z(ptr ptr) __ExceptionPtrCompare
 @ cdecl -arch=win32 ?__ExceptionPtrCopy@@YAXPAXPBX at Z(ptr ptr) __ExceptionPtrCopy
 @ cdecl -arch=win64 ?__ExceptionPtrCopy@@YAXPEAXPEBX at Z(ptr ptr) __ExceptionPtrCopy
 @ cdecl -arch=win32 ?__ExceptionPtrCopyException@@YAXPAXPBX1 at Z(ptr ptr ptr) __ExceptionPtrCopyException
diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec
index 9d0c993..0c995e4 100644
--- a/dlls/msvcr110/msvcr110.spec
+++ b/dlls/msvcr110/msvcr110.spec
@@ -688,8 +688,8 @@
 @ stub ?_Yield at _Context@details at Concurrency@@SAXXZ
 @ stub -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX at Z
 @ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX at Z
-@ stub -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0 at Z
-@ stub -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0 at Z
+@ cdecl -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0 at Z(ptr ptr) __ExceptionPtrCompare
+@ cdecl -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0 at Z(ptr ptr) __ExceptionPtrCompare
 @ cdecl -arch=win32 ?__ExceptionPtrCopy@@YAXPAXPBX at Z(ptr ptr) __ExceptionPtrCopy
 @ cdecl -arch=win64 ?__ExceptionPtrCopy@@YAXPEAXPEBX at Z(ptr ptr) __ExceptionPtrCopy
 @ cdecl -arch=win32 ?__ExceptionPtrCopyException@@YAXPAXPBX1 at Z(ptr ptr ptr) __ExceptionPtrCopyException
diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec
index 4b59e44..772bcff 100644
--- a/dlls/msvcr120/msvcr120.spec
+++ b/dlls/msvcr120/msvcr120.spec
@@ -670,8 +670,8 @@
 @ stub ?_Yield at _Context@details at Concurrency@@SAXXZ
 @ stub -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX at Z
 @ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX at Z
-@ stub -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0 at Z
-@ stub -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0 at Z
+@ cdecl -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0 at Z(ptr ptr) __ExceptionPtrCompare
+@ cdecl -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0 at Z(ptr ptr) __ExceptionPtrCompare
 @ cdecl -arch=win32 ?__ExceptionPtrCopy@@YAXPAXPBX at Z(ptr ptr) __ExceptionPtrCopy
 @ cdecl -arch=win64 ?__ExceptionPtrCopy@@YAXPEAXPEBX at Z(ptr ptr) __ExceptionPtrCopy
 @ cdecl -arch=win32 ?__ExceptionPtrCopyException@@YAXPAXPBX1 at Z(ptr ptr ptr) __ExceptionPtrCopyException
diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec
index 4c6a373..37cbf0c 100644
--- a/dlls/msvcr120_app/msvcr120_app.spec
+++ b/dlls/msvcr120_app/msvcr120_app.spec
@@ -666,8 +666,8 @@
 @ stub ?_Yield at _Context@details at Concurrency@@SAXXZ
 @ stub -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX at Z
 @ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX at Z
-@ stub -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0 at Z
-@ stub -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0 at Z
+@ cdecl -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0 at Z(ptr ptr) msvcr120.?__ExceptionPtrCompare@@YA_NPBX0 at Z
+@ cdecl -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0 at Z(ptr ptr) msvcr120.?__ExceptionPtrCompare@@YA_NPEBX0 at Z
 @ cdecl -arch=win32 ?__ExceptionPtrCopy@@YAXPAXPBX at Z(ptr ptr) msvcr120.?__ExceptionPtrCopy@@YAXPAXPBX at Z
 @ cdecl -arch=win64 ?__ExceptionPtrCopy@@YAXPEAXPEBX at Z(ptr ptr) msvcr120.?__ExceptionPtrCopy@@YAXPEAXPEBX at Z
 @ cdecl -arch=win32 ?__ExceptionPtrCopyException@@YAXPAXPBX1 at Z(ptr ptr ptr) msvcr120.?__ExceptionPtrCopyException@@YAXPAXPBX1 at Z
diff --git a/dlls/msvcrt/cpp.c b/dlls/msvcrt/cpp.c
index daf7aee..eedd0db 100644
--- a/dlls/msvcrt/cpp.c
+++ b/dlls/msvcrt/cpp.c
@@ -1580,6 +1580,11 @@ void __cdecl __ExceptionPtrCopyException(exception_ptr *ep,
 }
 #endif
 
+MSVCRT_bool __cdecl __ExceptionPtrCompare(const exception_ptr *ep1, const exception_ptr *ep2)
+{
+    return ep1->rec == ep2->rec;
+}
+
 void* __cdecl __AdjustPointer(void *obj, const this_ptr_offsets *off)
 {
     return get_this_pointer(off, obj);




More information about the wine-cvs mailing list