Piotr Caban : msvcrt: Handle try blocks inside current catch block in nested frame handler.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Mar 16 11:36:40 CDT 2016


Module: wine
Branch: master
Commit: 2d4b48a58d8a4a79eaf922f6b9c0375a38bce9b9
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=2d4b48a58d8a4a79eaf922f6b9c0375a38bce9b9

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Tue Mar 15 13:41:08 2016 +0100

msvcrt: Handle try blocks inside current catch block in nested frame handler.

Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/msvcrt/except_i386.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/dlls/msvcrt/except_i386.c b/dlls/msvcrt/except_i386.c
index 116a429..56165c0 100644
--- a/dlls/msvcrt/except_i386.c
+++ b/dlls/msvcrt/except_i386.c
@@ -461,6 +461,9 @@ static inline void call_catch_block( PEXCEPTION_RECORD rec, cxx_exception_frame
     {
         const tryblock_info *tryblock = &descr->tryblock[i];
 
+        /* only handle try blocks inside current catch block */
+        if (catch_frame && nested_trylevel > tryblock->start_level) continue;
+
         if (trylevel < tryblock->start_level) continue;
         if (trylevel > tryblock->end_level) continue;
 




More information about the wine-cvs mailing list