Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
89b2dd08
Commit
89b2dd08
authored
Mar 13, 2012
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msvcrt: Move more i386-specific exception code to except_i386.c.
parent
aba6423b
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
5 additions
and
56 deletions
+5
-56
cppexcept.h
dlls/msvcrt/cppexcept.h
+5
-56
except.c
dlls/msvcrt/except.c
+0
-0
except_i386.c
dlls/msvcrt/except_i386.c
+0
-0
No files found.
dlls/msvcrt/cppexcept.h
View file @
89b2dd08
...
...
@@ -44,59 +44,6 @@ typedef struct __exception
int
do_free
;
/* Whether to free 'name' in our dtor */
}
exception
;
/* the exception frame used by CxxFrameHandler */
typedef
struct
__cxx_exception_frame
{
EXCEPTION_REGISTRATION_RECORD
frame
;
/* the standard exception frame */
int
trylevel
;
DWORD
ebp
;
}
cxx_exception_frame
;
/* info about a single catch {} block */
typedef
struct
__catchblock_info
{
UINT
flags
;
/* flags (see below) */
const
type_info
*
type_info
;
/* C++ type caught by this block */
int
offset
;
/* stack offset to copy exception object to */
void
(
*
handler
)(
void
);
/* catch block handler code */
}
catchblock_info
;
#define TYPE_FLAG_CONST 1
#define TYPE_FLAG_VOLATILE 2
#define TYPE_FLAG_REFERENCE 8
/* info about a single try {} block */
typedef
struct
__tryblock_info
{
int
start_level
;
/* start trylevel of that block */
int
end_level
;
/* end trylevel of that block */
int
catch_level
;
/* initial trylevel of the catch block */
int
catchblock_count
;
/* count of catch blocks in array */
const
catchblock_info
*
catchblock
;
/* array of catch blocks */
}
tryblock_info
;
/* info about the unwind handler for a given trylevel */
typedef
struct
__unwind_info
{
int
prev
;
/* prev trylevel unwind handler, to run after this one */
void
(
*
handler
)(
void
);
/* unwind handler */
}
unwind_info
;
/* descriptor of all try blocks of a given function */
typedef
struct
__cxx_function_descr
{
UINT
magic
;
/* must be CXX_FRAME_MAGIC */
UINT
unwind_count
;
/* number of unwind handlers */
const
unwind_info
*
unwind_table
;
/* array of unwind handlers */
UINT
tryblock_count
;
/* number of try blocks */
const
tryblock_info
*
tryblock
;
/* array of try blocks */
UINT
ipmap_count
;
const
void
*
ipmap
;
const
void
*
expect_list
;
/* expected exceptions list when magic >= VC7 */
UINT
flags
;
/* flags when magic >= VC8 */
}
cxx_function_descr
;
#define FUNC_DESCR_SYNCHRONOUS 1
/* synchronous exceptions only (built with /EHs) */
typedef
void
(
*
cxx_copy_ctor
)(
void
);
/* offsets for computing the this pointer */
...
...
@@ -126,9 +73,12 @@ typedef struct __cxx_type_info_table
const
cxx_type_info
*
info
[
3
];
/* variable length, we declare it large enough for static RTTI */
}
cxx_type_info_table
;
typedef
DWORD
(
*
cxx_exc_custom_handler
)(
PEXCEPTION_RECORD
,
cxx_exception_frame
*
,
struct
__cxx_exception_frame
;
struct
__cxx_function_descr
;
typedef
DWORD
(
*
cxx_exc_custom_handler
)(
PEXCEPTION_RECORD
,
struct
__cxx_exception_frame
*
,
PCONTEXT
,
EXCEPTION_REGISTRATION_RECORD
**
,
const
cxx_function_descr
*
,
int
nested_trylevel
,
const
struct
__
cxx_function_descr
*
,
int
nested_trylevel
,
EXCEPTION_REGISTRATION_RECORD
*
nested_frame
,
DWORD
unknown3
);
/* type information for an exception object */
...
...
@@ -142,7 +92,6 @@ typedef struct __cxx_exception_type
void
WINAPI
_CxxThrowException
(
exception
*
,
const
cxx_exception_type
*
);
int
CDECL
_XcptFilter
(
NTSTATUS
,
PEXCEPTION_POINTERS
);
int
CDECL
__CppXcptFilter
(
NTSTATUS
,
PEXCEPTION_POINTERS
);
static
inline
const
char
*
dbgstr_type_info
(
const
type_info
*
info
)
{
...
...
dlls/msvcrt/except.c
View file @
89b2dd08
This diff is collapsed.
Click to expand it.
dlls/msvcrt/except_i386.c
View file @
89b2dd08
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment