Piotr Caban
6babdb5508
msvcrt: Fix handling tryblocks inside current catch block on nested exception.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48335
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-13 19:41:02 +01:00
Piotr Caban
48a447c5eb
msvcrt: Pass catch_func_nested_frame struct to call_catch_block.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-13 19:41:02 +01:00
Piotr Caban
ea20974cdd
msvcrt: Pass catch_func_nested_frame struct to cxx_frame_handler.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-13 19:41:02 +01:00
Francois Gouget
529d09d353
msvcrt: Fix the spelling of a couple of TRACE() messages.
...
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-11-28 20:45:46 +01:00
Alexandre Julliard
61680b4449
winecrt0: Provide our own setjmp/longjmp functions for exception handling.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-06-18 23:51:51 +02:00
Zebediah Figura
88f273b77c
msvcrt: Don't reimplement call_unwind_func().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-12 23:48:47 +02:00
Zebediah Figura
77e92cf72c
msvcrt: Avoid using inline assembly in call_unwind_func().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-12 23:48:47 +02:00
Zebediah Figura
9867d10e28
msvcrt: Avoid using inline assembly in call_filter().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-11 18:28:37 +02:00
Zebediah Figura
f96a3b735b
msvcrt: Avoid using inline assembly in call_finally_block().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-11 18:27:07 +02:00
Zebediah Figura
701e1b6f81
msvcrt: Avoid using inline assembly in continue_after_catch().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-11 18:26:46 +02:00
Zebediah Figura
0c216b8ca8
msvcrt: Avoid using inline assembly in __ExceptionPtrCopyException() and copy_exception().
...
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-01 19:49:29 +02:00
Piotr Caban
9999c59c48
ucrtbase: Add __processing_throw implementation.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-20 23:19:59 +01:00
Piotr Caban
f82af4d2bb
ucrtbase: Add __current_exception_context() implementation.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-03-20 23:19:50 +01:00
Alexandre Julliard
7726157e19
msvcrt: Use WINAPIV calling convention for variadic functions.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-11-02 10:20:02 +01:00
Alexandre Julliard
c293acac01
msvcrt: Mark function that are only called from assembly as hidden.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-25 11:49:07 +02:00
Piotr Caban
c7a51dfdcb
msvcrt: Translate SEH exception on each call to __CxxFrameHandler (i386).
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-06 13:47:13 +02:00
Daniel Lehman
b0326bea74
msvcrt: Handle synchronous flag for x64 C++ exceptions.
...
Signed-off-by: Daniel Lehman <dlehman@esri.com>
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-24 19:17:28 +02:00
Piotr Caban
a6ffb1d2cf
msvcrt: Support fdiv m64fp in i386 _fpieee_flt.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-25 01:10:21 +09:00
Piotr Caban
dc0e3d0a9c
msvcrt: Add _fpieee_flt stub.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-25 01:10:21 +09:00
Piotr Caban
4facdec686
msvcrt: Remove unused call_dtor function.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-05 23:22:04 +09:00
Piotr Caban
ee5e06591f
msvcrt: Fix i386 rethrown exceptions handling.
...
When __CxxRegisterExceptionObject was used and there was no
catch_function_nested_handler frame to rewind
nested_frame.frame_info.rec was incorrectly set to current exception.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-08 00:10:44 +09:00
Piotr Caban
97567074a5
msvcrt: Update previous exception stored in cxx_frame_info after frames unwinding.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-23 22:58:23 +09:00
Piotr Caban
3a0b3c5bc8
msvcrt: Register exception object before unwinding.
...
Thrown object was incorrectly freed in following situation:
try {
try {
throw obj;
} catch(...) {
throw;
}
} catch(...) {
//use object here
}
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-22 12:20:31 +09:00
Piotr Caban
fdcdbf306a
msvcrt: Restore exception object stored in thread storage after frames unwinding.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-22 12:20:25 +09:00
Piotr Caban
4a397b4009
msvcrt: Destroy thrown c++ object before calling handler in _except_handler4_common.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-18 22:20:03 +09:00
Piotr Caban
2296261600
msvcr80: Use Cxx(Un)RegisterExceptionObject helpers in i386 nested exception handler.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-17 11:32:31 +09:00
Piotr Caban
0204517401
msvcr80: Add _CreateFrameInfo implementation.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-17 11:32:04 +09:00
Piotr Caban
f085be3028
msvcrt: Destroy exception object when frame storing it is unwound.
...
Thrown object was incorrectly freed in following situation:
try {
throw obj;
} catch(object &obj) {
try {
throw 1;
} catch(...) {}
//use object here
}
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-16 21:59:41 +09:00
Piotr Caban
2d4b48a58d
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>
2016-03-16 21:59:41 +09:00
Piotr Caban
941e4f7e9d
msvcrt: Destroy exception object if it's no longer used when exiting catch.
...
Thrown object was incorrectly freed in following situation:
try {
throw obj;
} catch(object &obj) {
try {
throw;
} catch(...) {}
//use object here
}
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-16 21:59:41 +09:00
Piotr Caban
0ef61844b8
msvcrt: Add i386 _IsExceptionObjectToBeDestroyed implementation.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-16 21:59:41 +09:00
Sebastian Lackner
4e941a9289
msvcrt: Pass cookie reference to msvcrt_local_unwind4 instead of value.
...
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
2015-10-05 22:27:13 +09:00
Piotr Caban
07762576c4
msvcrt: Add i386 __CxxExceptionFilter implementation.
...
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
2015-10-01 16:32:34 +09:00
Piotr Caban
36309142d0
msvcrt: Handle seh exceptions rethrowing in cxx_frame_handler.
2014-04-30 15:15:33 +02:00
Piotr Caban
b5b454c504
msvcrt: Handle seh exception rethrowing in catch_function_nested_handler.
2014-04-30 15:15:32 +02:00
Piotr Caban
0f3c31b1ea
msvcrt: Try to convert C to C++ exception in __CxxFrameHandler.
2014-01-02 15:50:13 +01:00
Piotr Caban
76969a8651
msvcrt: Don't call local_unwind2 when Cookie equals MSVCRT_JMP_MAGIC in longjmp.
2012-12-20 12:23:20 +01:00
Piotr Caban
5e418f0ccf
msvcrt: Handle rethrown exception in cxx_frame_handler.
2012-05-30 16:27:23 +02:00
Alexandre Julliard
89b2dd08ff
msvcrt: Move more i386-specific exception code to except_i386.c.
2012-03-16 10:53:21 +01:00
Alexandre Julliard
aba6423b83
msvcrt: Create an i386-specific file for exception handling.
2012-03-16 10:52:10 +01:00