Daniel Lehman : msvcrt: Add __ExceptionPtrAssign.
Module: wine Branch: stable Commit: 946bae9bbc01538fb5696286bed026fb45612f67 URL: https://source.winehq.org/git/wine.git/?a=commit;h=946bae9bbc01538fb5696286b... Author: Daniel Lehman <dlehman(a)esri.com> Date: Tue Apr 4 10:00:31 2017 -0700 msvcrt: Add __ExceptionPtrAssign. Signed-off-by: Daniel Lehman <dlehman(a)esri.com> Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit 867a27c96429cafaf8858c361625612b7817e951) 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 | 12 ++++++++++++ 6 files changed, 22 insertions(+), 10 deletions(-) diff --git a/dlls/msvcp140/msvcp140.spec b/dlls/msvcp140/msvcp140.spec index ec8ae3b..a1aa8ec 100644 --- a/dlls/msvcp140/msvcp140.spec +++ b/dlls/msvcp140/msvcp140.spec @@ -1689,8 +1689,8 @@ @ stub ?_Xregex_error(a)std@@YAXW4error_type(a)regex_constants@1@@Z @ cdecl -arch=win32 ?_Xruntime_error(a)std@@YAXPBD(a)Z(str) _Xruntime_error @ 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 +@ cdecl -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX(a)Z(ptr ptr) msvcr120.?__ExceptionPtrAssign@@YAXPAXPBX(a)Z +@ cdecl -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX(a)Z(ptr ptr) msvcr120.?__ExceptionPtrAssign@@YAXPEAXPEBX(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 diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index cc610f6..f45ecf9 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -408,8 +408,8 @@ @ stub -arch=win32 ?_ValidateWrite@@YAHPAXI(a)Z @ stub -arch=win64 ?_ValidateWrite@@YAHPEAXI(a)Z @ cdecl ?_Value(a)_SpinCount@details(a)Concurrency@@SAIXZ() SpinCount__Value -@ stub -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX(a)Z -@ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX(a)Z +@ cdecl -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX(a)Z(ptr ptr) __ExceptionPtrAssign +@ cdecl -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX(a)Z(ptr ptr) __ExceptionPtrAssign @ 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 diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index c37cfdd..8e44ded 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -686,8 +686,8 @@ @ stub -arch=win64 ?_ValidateWrite@@YAHPEAXI(a)Z @ cdecl ?_Value(a)_SpinCount@details(a)Concurrency@@SAIXZ() SpinCount__Value @ stub ?_Yield(a)_Context@details(a)Concurrency@@SAXXZ -@ stub -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX(a)Z -@ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX(a)Z +@ cdecl -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX(a)Z(ptr ptr) __ExceptionPtrAssign +@ cdecl -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX(a)Z(ptr ptr) __ExceptionPtrAssign @ 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 diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index fc3e06c..18b5b76 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -668,8 +668,8 @@ @ stub -arch=win64 ?_ValidateWrite@@YAHPEAXI(a)Z @ cdecl ?_Value(a)_SpinCount@details(a)Concurrency@@SAIXZ() SpinCount__Value @ stub ?_Yield(a)_Context@details(a)Concurrency@@SAXXZ -@ stub -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX(a)Z -@ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX(a)Z +@ cdecl -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX(a)Z(ptr ptr) __ExceptionPtrAssign +@ cdecl -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX(a)Z(ptr ptr) __ExceptionPtrAssign @ 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 diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec index fde270e..3bc8270 100644 --- a/dlls/msvcr120_app/msvcr120_app.spec +++ b/dlls/msvcr120_app/msvcr120_app.spec @@ -664,8 +664,8 @@ @ stub -arch=win64 ?_ValidateWrite@@YAHPEAXI(a)Z @ cdecl ?_Value(a)_SpinCount@details(a)Concurrency@@SAIXZ() msvcr120.?_Value(a)_SpinCount@details(a)Concurrency@@SAIXZ @ stub ?_Yield(a)_Context@details(a)Concurrency@@SAXXZ -@ stub -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX(a)Z -@ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX(a)Z +@ cdecl -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX(a)Z(ptr ptr) msvcr120.?__ExceptionPtrAssign@@YAXPAXPBX(a)Z +@ cdecl -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX(a)Z(ptr ptr) msvcr120.?__ExceptionPtrAssign@@YAXPEAXPEBX(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 diff --git a/dlls/msvcrt/cpp.c b/dlls/msvcrt/cpp.c index eedd0db..4d0d9b5 100644 --- a/dlls/msvcrt/cpp.c +++ b/dlls/msvcrt/cpp.c @@ -1347,6 +1347,18 @@ void __cdecl __ExceptionPtrCopy(exception_ptr *ep, const exception_ptr *copy) } /********************************************************************* + * ?__ExceptionPtrAssign@@YAXPAXPBX(a)Z + * ?__ExceptionPtrAssign@@YAXPEAXPEBX(a)Z + */ +void __cdecl __ExceptionPtrAssign(exception_ptr *ep, const exception_ptr *assign) +{ + TRACE("(%p %p)\n", ep, assign); + + /* don't destroy object stored in ep */ + *ep = *assign; +} + +/********************************************************************* * ?__ExceptionPtrRethrow@@YAXPBX(a)Z * ?__ExceptionPtrRethrow@@YAXPEBX(a)Z */
participants (1)
-
Alexandre Julliard