Module: wine
Branch: master
Commit: a91c1e054a4bd9995d23eb28908facb5d34f655f
URL:
https://source.winehq.org/git/wine.git/?a=commit;h=a91c1e054a4bd9995d23eb28…
Author: Piotr Caban <piotr(a)codeweavers.com>
Date: Thu Feb 28 19:42:50 2019 +0100
msvcp140: Don't forward __ExceptionPtrCreate to msvcr120.
Wine-Bug:
https://bugs.winehq.org/show_bug.cgi?id=46583
Signed-off-by: Piotr Caban <piotr(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/msvcp140/msvcp140.spec | 4 ++--
dlls/msvcp90/exception.c | 14 ++++++++++++++
2 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/dlls/msvcp140/msvcp140.spec b/dlls/msvcp140/msvcp140.spec
index 6a4eb14..20f542e 100644
--- a/dlls/msvcp140/msvcp140.spec
+++ b/dlls/msvcp140/msvcp140.spec
@@ -1697,8 +1697,8 @@
@ cdecl -arch=win64 ?__ExceptionPtrCopy@@YAXPEAXPEBX@Z(ptr ptr)
msvcr120.?__ExceptionPtrCopy@@YAXPEAXPEBX@Z
@ cdecl -arch=win32 ?__ExceptionPtrCopyException@@YAXPAXPBX1@Z(ptr ptr ptr)
msvcr120.?__ExceptionPtrCopyException@@YAXPAXPBX1@Z
@ cdecl -arch=win64 ?__ExceptionPtrCopyException@@YAXPEAXPEBX1@Z(ptr ptr ptr)
msvcr120.?__ExceptionPtrCopyException@@YAXPEAXPEBX1@Z
-@ cdecl -arch=win32 ?__ExceptionPtrCreate@@YAXPAX@Z(ptr)
msvcr120.?__ExceptionPtrCreate@@YAXPAX@Z
-@ cdecl -arch=win64 ?__ExceptionPtrCreate@@YAXPEAX@Z(ptr)
msvcr120.?__ExceptionPtrCreate@@YAXPEAX@Z
+@ cdecl -arch=win32 ?__ExceptionPtrCreate@@YAXPAX@Z(ptr) __ExceptionPtrCreate
+@ cdecl -arch=win64 ?__ExceptionPtrCreate@@YAXPEAX@Z(ptr) __ExceptionPtrCreate
@ cdecl -arch=win32 ?__ExceptionPtrCurrentException@@YAXPAX@Z(ptr)
msvcr120.?__ExceptionPtrCurrentException@@YAXPAX@Z
@ cdecl -arch=win64 ?__ExceptionPtrCurrentException@@YAXPEAX@Z(ptr)
msvcr120.?__ExceptionPtrCurrentException@@YAXPEAX@Z
@ cdecl -arch=win32 ?__ExceptionPtrDestroy@@YAXPAX@Z(ptr)
msvcr120.?__ExceptionPtrDestroy@@YAXPAX@Z
diff --git a/dlls/msvcp90/exception.c b/dlls/msvcp90/exception.c
index e7ba3d7..5a382e3 100644
--- a/dlls/msvcp90/exception.c
+++ b/dlls/msvcp90/exception.c
@@ -949,6 +949,20 @@ int __cdecl __uncaught_exceptions(void)
{
return *UCRTBASE___processing_throw();
}
+
+typedef struct
+{
+ EXCEPTION_RECORD *rec;
+ int *ref; /* not binary compatible with native */
+} exception_ptr;
+
+void __cdecl __ExceptionPtrCreate(exception_ptr *ep)
+{
+ TRACE("(%p)\n", ep);
+
+ ep->rec = NULL;
+ ep->ref = NULL;
+}
#endif
#if _MSVCP_VER >= 70 || defined(_MSVCIRT)