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