Module: wine Branch: stable Commit: f65fce4e27f2004541219393ee82e398d0ca2714 URL: http://source.winehq.org/git/wine.git/?a=commit;h=f65fce4e27f2004541219393ee... Author: Piotr Caban <piotr(a)codeweavers.com> Date: Fri Mar 24 12:45:14 2017 +0100 msvcrt: Add __ExceptionPtrCompare implementation. Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit cf7f632b31965b1f8ff6a4a69369326c4f146492) Signed-off-by: Michael Stefaniuc <mstefani(a)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(a)std@@YAXPEBD(a)Z(str) _Xruntime_error @ stub -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX(a)Z @ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX(a)Z -@ stub -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0(a)Z -@ stub -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0(a)Z +@ cdecl -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0(a)Z(ptr ptr) msvcr120.?__ExceptionPtrCompare@@YA_NPBX0(a)Z +@ cdecl -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0(a)Z(ptr ptr) msvcr120.?__ExceptionPtrCompare@@YA_NPEBX0(a)Z @ cdecl -arch=win32 ?__ExceptionPtrCopy@@YAXPAXPBX(a)Z(ptr ptr) msvcr120.?__ExceptionPtrCopy@@YAXPAXPBX(a)Z @ cdecl -arch=win64 ?__ExceptionPtrCopy@@YAXPEAXPEBX(a)Z(ptr ptr) msvcr120.?__ExceptionPtrCopy@@YAXPEAXPEBX(a)Z @ cdecl -arch=win32 ?__ExceptionPtrCopyException@@YAXPAXPBX1(a)Z(ptr ptr ptr) msvcr120.?__ExceptionPtrCopyException@@YAXPAXPBX1(a)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(a)_SpinCount@details(a)Concurrency@@SAIXZ() SpinCount__Value @ stub -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX(a)Z @ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX(a)Z -@ stub -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0(a)Z -@ stub -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0(a)Z +@ cdecl -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0(a)Z(ptr ptr) __ExceptionPtrCompare +@ cdecl -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0(a)Z(ptr ptr) __ExceptionPtrCompare @ cdecl -arch=win32 ?__ExceptionPtrCopy@@YAXPAXPBX(a)Z(ptr ptr) __ExceptionPtrCopy @ cdecl -arch=win64 ?__ExceptionPtrCopy@@YAXPEAXPEBX(a)Z(ptr ptr) __ExceptionPtrCopy @ cdecl -arch=win32 ?__ExceptionPtrCopyException@@YAXPAXPBX1(a)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(a)_Context@details(a)Concurrency@@SAXXZ @ stub -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX(a)Z @ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX(a)Z -@ stub -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0(a)Z -@ stub -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0(a)Z +@ cdecl -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0(a)Z(ptr ptr) __ExceptionPtrCompare +@ cdecl -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0(a)Z(ptr ptr) __ExceptionPtrCompare @ cdecl -arch=win32 ?__ExceptionPtrCopy@@YAXPAXPBX(a)Z(ptr ptr) __ExceptionPtrCopy @ cdecl -arch=win64 ?__ExceptionPtrCopy@@YAXPEAXPEBX(a)Z(ptr ptr) __ExceptionPtrCopy @ cdecl -arch=win32 ?__ExceptionPtrCopyException@@YAXPAXPBX1(a)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(a)_Context@details(a)Concurrency@@SAXXZ @ stub -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX(a)Z @ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX(a)Z -@ stub -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0(a)Z -@ stub -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0(a)Z +@ cdecl -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0(a)Z(ptr ptr) __ExceptionPtrCompare +@ cdecl -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0(a)Z(ptr ptr) __ExceptionPtrCompare @ cdecl -arch=win32 ?__ExceptionPtrCopy@@YAXPAXPBX(a)Z(ptr ptr) __ExceptionPtrCopy @ cdecl -arch=win64 ?__ExceptionPtrCopy@@YAXPEAXPEBX(a)Z(ptr ptr) __ExceptionPtrCopy @ cdecl -arch=win32 ?__ExceptionPtrCopyException@@YAXPAXPBX1(a)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(a)_Context@details(a)Concurrency@@SAXXZ @ stub -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX(a)Z @ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX(a)Z -@ stub -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0(a)Z -@ stub -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0(a)Z +@ cdecl -arch=win32 ?__ExceptionPtrCompare@@YA_NPBX0(a)Z(ptr ptr) msvcr120.?__ExceptionPtrCompare@@YA_NPBX0(a)Z +@ cdecl -arch=win64 ?__ExceptionPtrCompare@@YA_NPEBX0(a)Z(ptr ptr) msvcr120.?__ExceptionPtrCompare@@YA_NPEBX0(a)Z @ cdecl -arch=win32 ?__ExceptionPtrCopy@@YAXPAXPBX(a)Z(ptr ptr) msvcr120.?__ExceptionPtrCopy@@YAXPAXPBX(a)Z @ cdecl -arch=win64 ?__ExceptionPtrCopy@@YAXPEAXPEBX(a)Z(ptr ptr) msvcr120.?__ExceptionPtrCopy@@YAXPEAXPEBX(a)Z @ cdecl -arch=win32 ?__ExceptionPtrCopyException@@YAXPAXPBX1(a)Z(ptr ptr ptr) msvcr120.?__ExceptionPtrCopyException@@YAXPAXPBX1(a)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);