Commit Graph

23 Commits

Author SHA1 Message Date
Peter Beutner
82818284c3 msvcrt: Save esp before calling catch block and restore afterwards.
It seems like the esp value (which is saved at [ebp-16]) is sometimes
changed inside the catch handler so we end up with a bogus esp
afterwards.  To avoid that save it before calling the catch block.
2006-02-22 12:21:00 +01:00
Peter Beutner
be07b6db59 msvcrt: Fix handling of multiple nested exceptions.
Save in each nested frame a pointer to the original exception record.
Only one refence in thread_data isn't enough when we have multiple
nested frames.
2006-02-22 12:06:56 +01:00
Peter Beutner
62dc7f52f4 msvcrt: Fix handling of nested exceptions.
Move handling of nested exceptions completely in the
catch_function_nested_handler().  If a new exception was thrown inside
a catch block destroy the old exception object, if it is a rethrow
re-propagate the previous object.
2006-02-22 12:04:13 +01:00
Peter Beutner
916c4b6b8c msvcrt: Remove bogus code.
We can't just pop a exception record from the exception handler list
which we haven't put there.
2006-02-17 17:37:26 +01:00
Alexandre Julliard
c016509119 msvcrt: Preserve all registers in call_ebp_func. 2006-01-21 19:23:02 +01:00
Alexandre Julliard
abb170fac3 msvcrt: Added some assembly glue for the asm bits of __CxxFrameHandler
to avoid having to save/restore the whole context on every call.
2006-01-05 13:56:11 +01:00
Peter Beutner
78ea87c580 Fix exception handling for non CXX_EXCEPTIONs. 2005-10-30 19:03:43 +00:00
Alexandre Julliard
9f859692f9 Replace DPRINTF by TRACE in a few places. 2005-09-25 15:23:21 +00:00
Alexandre Julliard
261e376495 Fixed a number of pointer to integer conversions that wouldn't work
right on a 64-bit platform.
2005-09-12 15:14:06 +00:00
Alexandre Julliard
26050b49d5 Prefix the internal name of all register functions with __regs_ for
better consistency and to make automated checking possible.
2005-05-07 18:10:30 +00:00
Peter Chapman
505dfdefb5 Fix up several inline assembler blocks so that they produce correct
code with the -fomit-frame-pointer gcc flag.
2004-12-02 18:19:25 +00:00
Alexandre Julliard
5d5f523052 Output the virtual tables for the exception classes using assembly so
that they can have the correct layout, and get rid of the
corresponding hacks in RTTI_GetObjectLocator.
Build more of the code on non-i386 platforms too.
Protect __RTDynamicCast and friends with exception handlers.
Fix handling of the vtable pointer so that we don't need to declare
all object pointers as type_info.
2004-10-19 04:03:07 +00:00
Alexandre Julliard
b8d5d962ee Fixed __RTDynamicCast to return the correct pointer for multiple
inheritance hierarchies (thanks to Muse Research for help with this
one).
Added some debug output.
2004-10-18 23:13:55 +00:00
Dimitrie O. Paun
0377462460 Split the MSVCRT implementation headers from the public headers.
Fix some naming conventions aberrations.
Add tests to ensure consistency between the two sets of symbols.
2004-06-25 01:19:15 +00:00
Alexandre Julliard
f752be843e Implement some more register functions using DEFINE_REGS_ENTRYPOINT to
make them available for imports.
2003-12-04 05:51:01 +00:00
Alexandre Julliard
e37c6e18d0 Fixed header dependencies to be fully compatible with the Windows
headers (with help from Dimitrie O. Paun).
2003-09-05 23:08:26 +00:00
Alexandre Julliard
ee106783d0 Renamed EXCEPTION_FRAME to EXCEPTION_REGISTRATION_RECORD since that
seems to be the official name.
2003-08-28 03:07:56 +00:00
Jon Griffiths
c62c1c0158 Add __CxxDetectRethrow(), __CxxQueryExceptionSize().
Constify parameters (enabling static RTTI).
Move type definitions into a header for sharing with cpp.c objects.
2003-03-18 18:26:05 +00:00
Dimitrie O. Paun
737d4be892 Move excpt.h out of include/msvcrt/ as it does not conflict with any
standard Unix header.
2002-12-12 23:34:01 +00:00
Alexandre Julliard
6bd508f82c Added clobber lists to the inline assembly functions. 2002-11-01 01:50:51 +00:00
Alexandre Julliard
5ad69f19bf Added support for nested exceptions happening inside a catch block. 2002-10-31 02:10:15 +00:00
Patrik Stridvall
9c1de6de30 Moved all the content of the DDK files ntdef.h and ntddk.h to
winternl.h.
2002-09-12 22:07:02 +00:00
Alexandre Julliard
37a4c9b8fe First pass implementation of CxxFrameHandler (thanks to Juergen
Schmied for help in testing it).
2002-07-24 03:02:51 +00:00