Piotr Caban : msvcrt: Handle non c++ exceptions in __DestructExceptionObject.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Mar 18 08:33:04 CDT 2016
Module: wine
Branch: master
Commit: 856f0f9d13af93d2d0b1d36fcf3f8dc976a4f4f8
URL: http://source.winehq.org/git/wine.git/?a=commit;h=856f0f9d13af93d2d0b1d36fcf3f8dc976a4f4f8
Author: Piotr Caban <piotr at codeweavers.com>
Date: Fri Mar 18 12:40:25 2016 +0100
msvcrt: Handle non c++ exceptions in __DestructExceptionObject.
Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/msvcrt/except.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/dlls/msvcrt/except.c b/dlls/msvcrt/except.c
index 09f42f0..fc0e36e 100644
--- a/dlls/msvcrt/except.c
+++ b/dlls/msvcrt/except.c
@@ -400,6 +400,15 @@ void CDECL __DestructExceptionObject(EXCEPTION_RECORD *rec)
TRACE("(%p)\n", rec);
+ if (rec->ExceptionCode != CXX_EXCEPTION) return;
+#ifndef __x86_64__
+ if (rec->NumberParameters != 3) return;
+#else
+ if (rec->NumberParameters != 4) return;
+#endif
+ if (rec->ExceptionInformation[0] < CXX_FRAME_MAGIC_VC6 ||
+ rec->ExceptionInformation[0] > CXX_FRAME_MAGIC_VC8) return;
+
if (!info || !info->destructor)
return;
More information about the wine-cvs
mailing list