Daniel Lehman : msvcrt: Add __ExceptionPtrAssign.

Alexandre Julliard julliard at winehq.org
Tue Jan 2 15:01:24 CST 2018


Module: wine
Branch: stable
Commit: 946bae9bbc01538fb5696286bed026fb45612f67
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=946bae9bbc01538fb5696286bed026fb45612f67

Author: Daniel Lehman <dlehman at esri.com>
Date:   Tue Apr  4 10:00:31 2017 -0700

msvcrt: Add __ExceptionPtrAssign.

Signed-off-by: Daniel Lehman <dlehman at esri.com>
Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
(cherry picked from commit 867a27c96429cafaf8858c361625612b7817e951)
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                   | 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 at std@@YAXW4error_type at regex_constants@1@@Z
 @ cdecl -arch=win32 ?_Xruntime_error at std@@YAXPBD at Z(str) _Xruntime_error
 @ 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
+@ cdecl -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX at Z(ptr ptr) msvcr120.?__ExceptionPtrAssign@@YAXPAXPBX at Z
+@ cdecl -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX at Z(ptr ptr) msvcr120.?__ExceptionPtrAssign@@YAXPEAXPEBX 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
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 at Z
 @ stub -arch=win64 ?_ValidateWrite@@YAHPEAXI at Z
 @ cdecl ?_Value at _SpinCount@details at Concurrency@@SAIXZ() SpinCount__Value
-@ stub -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX at Z
-@ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX at Z
+@ cdecl -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX at Z(ptr ptr) __ExceptionPtrAssign
+@ cdecl -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX at Z(ptr ptr) __ExceptionPtrAssign
 @ 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
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 at Z
 @ cdecl ?_Value at _SpinCount@details at Concurrency@@SAIXZ() SpinCount__Value
 @ stub ?_Yield at _Context@details at Concurrency@@SAXXZ
-@ stub -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX at Z
-@ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX at Z
+@ cdecl -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX at Z(ptr ptr) __ExceptionPtrAssign
+@ cdecl -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX at Z(ptr ptr) __ExceptionPtrAssign
 @ 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
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 at Z
 @ cdecl ?_Value at _SpinCount@details at Concurrency@@SAIXZ() SpinCount__Value
 @ stub ?_Yield at _Context@details at Concurrency@@SAXXZ
-@ stub -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX at Z
-@ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX at Z
+@ cdecl -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX at Z(ptr ptr) __ExceptionPtrAssign
+@ cdecl -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX at Z(ptr ptr) __ExceptionPtrAssign
 @ 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
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 at Z
 @ cdecl ?_Value at _SpinCount@details at Concurrency@@SAIXZ() msvcr120.?_Value at _SpinCount@details at Concurrency@@SAIXZ
 @ stub ?_Yield at _Context@details at Concurrency@@SAXXZ
-@ stub -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX at Z
-@ stub -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX at Z
+@ cdecl -arch=win32 ?__ExceptionPtrAssign@@YAXPAXPBX at Z(ptr ptr) msvcr120.?__ExceptionPtrAssign@@YAXPAXPBX at Z
+@ cdecl -arch=win64 ?__ExceptionPtrAssign@@YAXPEAXPEBX at Z(ptr ptr) msvcr120.?__ExceptionPtrAssign@@YAXPEAXPEBX 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
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 at Z
+ * ?__ExceptionPtrAssign@@YAXPEAXPEBX at 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 at Z
  * ?__ExceptionPtrRethrow@@YAXPEBX at Z
  */




More information about the wine-cvs mailing list