Module: wine Branch: master Commit: 2d4b48a58d8a4a79eaf922f6b9c0375a38bce9b9 URL: http://source.winehq.org/git/wine.git/?a=commit;h=2d4b48a58d8a4a79eaf922f6b9...
Author: Piotr Caban piotr@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@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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;