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
8d39c7d8
Commit
8d39c7d8
authored
Jun 12, 2012
by
Piotr Caban
Committed by
Alexandre Julliard
Jun 12, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msvcp90: Accept more base classes in DEFINE_RTTI_DATA macro.
parent
9f9a4a18
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
55 additions
and
43 deletions
+55
-43
exception.c
dlls/msvcp90/exception.c
+9
-9
ios.c
dlls/msvcp90/ios.c
+15
-15
locale.c
dlls/msvcp90/locale.c
+16
-16
msvcp90.h
dlls/msvcp90/msvcp90.h
+15
-3
No files found.
dlls/msvcp90/exception.c
View file @
8d39c7d8
...
...
@@ -96,7 +96,7 @@ void * __thiscall MSVCP_type_info_vector_dtor(type_info * _this, unsigned int fl
return
_this
;
}
DEFINE_RTTI_DATA
(
type_info
,
0
,
0
,
NULL
,
NULL
,
NULL
,
".?AVtype_info@@"
);
DEFINE_RTTI_DATA
0
(
type_info
,
0
,
".?AVtype_info@@"
);
DEFINE_THISCALL_WRAPPER
(
MSVCP_exception_ctor
,
8
)
exception
*
__thiscall
MSVCP_exception_ctor
(
exception
*
this
,
const
char
**
name
)
...
...
@@ -160,7 +160,7 @@ void * __thiscall MSVCP_exception_vector_dtor(exception *this, unsigned int flag
return
this
;
}
DEFINE_RTTI_DATA
(
exception
,
0
,
0
,
NULL
,
NULL
,
NULL
,
".?AVexception@std@@"
);
DEFINE_RTTI_DATA
0
(
exception
,
0
,
".?AVexception@std@@"
);
static
const
cxx_type_info
exception_cxx_type_info
=
{
0
,
...
...
@@ -241,7 +241,7 @@ const char* __thiscall MSVCP_what_exception(exception * this)
return
this
->
name
?
this
->
name
:
"Unknown exception"
;
}
DEFINE_RTTI_DATA
(
bad_alloc
,
0
,
1
,
&
exception_rtti_base_descriptor
,
NULL
,
NULL
,
".?AVbad_alloc@std@@"
);
DEFINE_RTTI_DATA
1
(
bad_alloc
,
0
,
&
exception_rtti_base_descriptor
,
".?AVbad_alloc@std@@"
);
static
const
cxx_type_info
bad_alloc_cxx_type_info
=
{
0
,
...
...
@@ -332,7 +332,7 @@ const char* __thiscall MSVCP_logic_error_what(logic_error *this)
return
MSVCP_basic_string_char_c_str
(
&
this
->
str
);
}
DEFINE_RTTI_DATA
(
logic_error
,
0
,
1
,
&
exception_rtti_base_descriptor
,
NULL
,
NULL
,
".?AVlogic_error@std@@"
);
DEFINE_RTTI_DATA
1
(
logic_error
,
0
,
&
exception_rtti_base_descriptor
,
".?AVlogic_error@std@@"
);
static
const
cxx_type_info
logic_error_cxx_type_info
=
{
0
,
...
...
@@ -389,7 +389,7 @@ void* __thiscall MSVCP_length_error_vector_dtor(
return
MSVCP_logic_error_vector_dtor
(
this
,
flags
);
}
DEFINE_RTTI_DATA
(
length_error
,
0
,
2
,
&
logic_error_rtti_base_descriptor
,
&
exception_rtti_base_descriptor
,
NULL
,
".?AVlength_error@std@@"
);
DEFINE_RTTI_DATA
2
(
length_error
,
0
,
&
logic_error_rtti_base_descriptor
,
&
exception_rtti_base_descriptor
,
".?AVlength_error@std@@"
);
static
const
cxx_type_info
length_error_cxx_type_info
=
{
0
,
...
...
@@ -446,7 +446,7 @@ void* __thiscall MSVCP_out_of_range_vector_dtor(
return
MSVCP_logic_error_vector_dtor
(
this
,
flags
);
}
DEFINE_RTTI_DATA
(
out_of_range
,
0
,
2
,
&
logic_error_rtti_base_descriptor
,
&
exception_rtti_base_descriptor
,
NULL
,
".?AVout_of_range@std@@"
);
DEFINE_RTTI_DATA
2
(
out_of_range
,
0
,
&
logic_error_rtti_base_descriptor
,
&
exception_rtti_base_descriptor
,
".?AVout_of_range@std@@"
);
static
const
cxx_type_info
out_of_range_cxx_type_info
=
{
0
,
...
...
@@ -503,7 +503,7 @@ void* __thiscall MSVCP_invalid_argument_vector_dtor(
return
MSVCP_logic_error_vector_dtor
(
this
,
flags
);
}
DEFINE_RTTI_DATA
(
invalid_argument
,
0
,
2
,
&
logic_error_rtti_base_descriptor
,
&
exception_rtti_base_descriptor
,
NULL
,
".?AVinvalid_argument@std@@"
);
DEFINE_RTTI_DATA
2
(
invalid_argument
,
0
,
&
logic_error_rtti_base_descriptor
,
&
exception_rtti_base_descriptor
,
".?AVinvalid_argument@std@@"
);
static
const
cxx_type_info
invalid_argument_cxx_type_info
=
{
0
,
...
...
@@ -594,7 +594,7 @@ const char* __thiscall MSVCP_runtime_error_what(runtime_error *this)
return
MSVCP_basic_string_char_c_str
(
&
this
->
str
);
}
DEFINE_RTTI_DATA
(
runtime_error
,
0
,
1
,
&
exception_rtti_base_descriptor
,
NULL
,
NULL
,
".?AVruntime_error@std@@"
);
DEFINE_RTTI_DATA
1
(
runtime_error
,
0
,
&
exception_rtti_base_descriptor
,
".?AVruntime_error@std@@"
);
static
const
cxx_type_info
runtime_error_cxx_type_info
=
{
0
,
...
...
@@ -665,7 +665,7 @@ const char* __thiscall MSVCP_failure_what(failure *this)
return
MSVCP_runtime_error_what
(
this
);
}
DEFINE_RTTI_DATA
(
failure
,
0
,
1
,
&
runtime_error_rtti_base_descriptor
,
&
exception_rtti_base_descriptor
,
NULL
,
".?AVfailure@std@@"
);
DEFINE_RTTI_DATA
2
(
failure
,
0
,
&
runtime_error_rtti_base_descriptor
,
&
exception_rtti_base_descriptor
,
".?AVfailure@std@@"
);
static
const
cxx_type_info
failure_cxx_type_info
=
{
0
,
...
...
dlls/msvcp90/ios.c
View file @
8d39c7d8
...
...
@@ -255,26 +255,26 @@ const int basic_istream_char_vbtable[] = {0, sizeof(basic_istream_char)};
/* ??_7?$basic_istream@DU?$char_traits@D@std@@@std@@6B@ */
extern
const
vtable_ptr
MSVCP_basic_istream_char_vtable
;
DEFINE_RTTI_DATA
(
iosb
,
0
,
0
,
NULL
,
NULL
,
NULL
,
".?AV?$_Iosb@H@std@@"
);
DEFINE_RTTI_DATA
(
ios_base
,
0
,
1
,
&
iosb_rtti_base_descriptor
,
NULL
,
NULL
,
".?AV?$_Iosb@H@std@@"
);
DEFINE_RTTI_DATA
(
basic_ios_char
,
0
,
2
,
&
ios_base_rtti_base_descriptor
,
&
iosb_rtti_base_descriptor
,
NULL
,
".?AV?$basic_ios@DU?$char_traits@D@std@@@std@@"
);
DEFINE_RTTI_DATA
(
basic_ios_wchar
,
0
,
2
,
&
ios_base_rtti_base_descriptor
,
&
iosb_rtti_base_descriptor
,
NULL
,
".?AV?$basic_ios@_WU?$char_traits@_W@std@@@std@@"
);
DEFINE_RTTI_DATA
(
basic_ios_short
,
0
,
2
,
&
ios_base_rtti_base_descriptor
,
&
iosb_rtti_base_descriptor
,
NULL
,
".?AV?$basic_ios@GU?$char_traits@G@std@@@std@@"
);
DEFINE_RTTI_DATA
(
basic_streambuf_char
,
0
,
0
,
NULL
,
NULL
,
NULL
,
DEFINE_RTTI_DATA
0
(
iosb
,
0
,
".?AV?$_Iosb@H@std@@"
);
DEFINE_RTTI_DATA
1
(
ios_base
,
0
,
&
iosb_rtti_base_descriptor
,
".?AV?$_Iosb@H@std@@"
);
DEFINE_RTTI_DATA
2
(
basic_ios_char
,
0
,
&
ios_base_rtti_base_descriptor
,
&
iosb_rtti_base_descriptor
,
".?AV?$basic_ios@DU?$char_traits@D@std@@@std@@"
);
DEFINE_RTTI_DATA
2
(
basic_ios_wchar
,
0
,
&
ios_base_rtti_base_descriptor
,
&
iosb_rtti_base_descriptor
,
".?AV?$basic_ios@_WU?$char_traits@_W@std@@@std@@"
);
DEFINE_RTTI_DATA
2
(
basic_ios_short
,
0
,
&
ios_base_rtti_base_descriptor
,
&
iosb_rtti_base_descriptor
,
".?AV?$basic_ios@GU?$char_traits@G@std@@@std@@"
);
DEFINE_RTTI_DATA
0
(
basic_streambuf_char
,
0
,
".?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@"
);
DEFINE_RTTI_DATA
(
basic_streambuf_wchar
,
0
,
0
,
NULL
,
NULL
,
NULL
,
DEFINE_RTTI_DATA
0
(
basic_streambuf_wchar
,
0
,
".?AV?$basic_streambuf@_WU?$char_traits@_W@std@@@std@@"
);
DEFINE_RTTI_DATA
(
basic_streambuf_short
,
0
,
0
,
NULL
,
NULL
,
NULL
,
DEFINE_RTTI_DATA
0
(
basic_streambuf_short
,
0
,
".?AV?$basic_streambuf@GU?$char_traits@G@std@@@std@@"
);
DEFINE_RTTI_DATA
(
basic_filebuf_char
,
0
,
1
,
&
basic_streambuf_char_rtti_base_descriptor
,
NULL
,
NULL
,
".?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@"
);
DEFINE_RTTI_DATA
(
basic_ostream_char
,
sizeof
(
basic_ostream_char
),
3
,
&
basic_ios_char_rtti_base_descriptor
,
DEFINE_RTTI_DATA
1
(
basic_filebuf_char
,
0
,
&
basic_streambuf_char_rtti_base_descriptor
,
".?AV?$basic_filebuf@DU?$char_traits@D@std@@@std@@"
);
DEFINE_RTTI_DATA
3
(
basic_ostream_char
,
sizeof
(
basic_ostream_char
)
,
&
basic_ios_char_rtti_base_descriptor
,
&
ios_base_rtti_base_descriptor
,
&
iosb_rtti_base_descriptor
,
".?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@"
);
DEFINE_RTTI_DATA
(
basic_istream_char
,
sizeof
(
basic_istream_char
),
3
,
&
basic_ios_char_rtti_base_descriptor
,
DEFINE_RTTI_DATA
3
(
basic_istream_char
,
sizeof
(
basic_istream_char
)
,
&
basic_ios_char_rtti_base_descriptor
,
&
ios_base_rtti_base_descriptor
,
&
iosb_rtti_base_descriptor
,
".?AV?$basic_istream@DU?$char_traits@D@std@@@std@@"
);
...
...
dlls/msvcp90/locale.c
View file @
8d39c7d8
...
...
@@ -4626,22 +4626,22 @@ locale* __cdecl locale_global(locale *ret, const locale *loc)
return
ret
;
}
DEFINE_RTTI_DATA
(
locale_facet
,
0
,
0
,
NULL
,
NULL
,
NULL
,
".?AVfacet@locale@std@@"
);
DEFINE_RTTI_DATA
(
collate_char
,
0
,
1
,
&
locale_facet_rtti_base_descriptor
,
NULL
,
NULL
,
".?AV?$collate@D@std@@"
);
DEFINE_RTTI_DATA
(
collate_wchar
,
0
,
1
,
&
locale_facet_rtti_base_descriptor
,
NULL
,
NULL
,
".?AV?$collate@_W@std@@"
);
DEFINE_RTTI_DATA
(
collate_short
,
0
,
1
,
&
locale_facet_rtti_base_descriptor
,
NULL
,
NULL
,
".?AV?$collate@G@std@@"
);
DEFINE_RTTI_DATA
(
ctype_base
,
0
,
1
,
&
locale_facet_rtti_base_descriptor
,
NULL
,
NULL
,
".?AUctype_base@std@@"
);
DEFINE_RTTI_DATA
(
ctype_char
,
0
,
2
,
&
ctype_base_rtti_base_descriptor
,
&
locale_facet_rtti_base_descriptor
,
NULL
,
".?AV?$ctype@D@std@@"
);
DEFINE_RTTI_DATA
(
ctype_wchar
,
0
,
2
,
&
ctype_base_rtti_base_descriptor
,
&
locale_facet_rtti_base_descriptor
,
NULL
,
".?AV?$ctype@_W@std@@"
);
DEFINE_RTTI_DATA
(
ctype_short
,
0
,
2
,
&
ctype_base_rtti_base_descriptor
,
&
locale_facet_rtti_base_descriptor
,
NULL
,
".?AV?$ctype@G@std@@"
);
DEFINE_RTTI_DATA
(
codecvt_base
,
0
,
1
,
&
locale_facet_rtti_base_descriptor
,
NULL
,
NULL
,
".?AVcodecvt_base@std@@"
);
DEFINE_RTTI_DATA
(
codecvt_char
,
0
,
2
,
&
codecvt_base_rtti_base_descriptor
,
&
locale_facet_rtti_base_descriptor
,
NULL
,
".?AV?$codecvt@DDH@std@@"
);
DEFINE_RTTI_DATA
(
numpunct_char
,
0
,
1
,
&
locale_facet_rtti_base_descriptor
,
NULL
,
NULL
,
".?AV?$numpunct@D@std@@"
);
DEFINE_RTTI_DATA
(
numpunct_wchar
,
0
,
1
,
&
locale_facet_rtti_base_descriptor
,
NULL
,
NULL
,
".?AV?$numpunct@_W@std@@"
);
DEFINE_RTTI_DATA
(
numpunct_short
,
0
,
1
,
&
locale_facet_rtti_base_descriptor
,
NULL
,
NULL
,
".?AV?$numpunct@G@std@@"
);
DEFINE_RTTI_DATA
(
num_get_char
,
0
,
1
,
&
locale_facet_rtti_base_descriptor
,
NULL
,
NULL
,
".?AV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@"
);
DEFINE_RTTI_DATA
(
num_get_wchar
,
0
,
1
,
&
locale_facet_rtti_base_descriptor
,
NULL
,
NULL
,
".?AV?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@"
);
DEFINE_RTTI_DATA
(
num_get_short
,
0
,
1
,
&
locale_facet_rtti_base_descriptor
,
NULL
,
NULL
,
".?AV?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@"
);
DEFINE_RTTI_DATA
0
(
locale_facet
,
0
,
".?AVfacet@locale@std@@"
);
DEFINE_RTTI_DATA
1
(
collate_char
,
0
,
&
locale_facet_rtti_base_descriptor
,
".?AV?$collate@D@std@@"
);
DEFINE_RTTI_DATA
1
(
collate_wchar
,
0
,
&
locale_facet_rtti_base_descriptor
,
".?AV?$collate@_W@std@@"
);
DEFINE_RTTI_DATA
1
(
collate_short
,
0
,
&
locale_facet_rtti_base_descriptor
,
".?AV?$collate@G@std@@"
);
DEFINE_RTTI_DATA
1
(
ctype_base
,
0
,
&
locale_facet_rtti_base_descriptor
,
".?AUctype_base@std@@"
);
DEFINE_RTTI_DATA
2
(
ctype_char
,
0
,
&
ctype_base_rtti_base_descriptor
,
&
locale_facet_rtti_base_descriptor
,
".?AV?$ctype@D@std@@"
);
DEFINE_RTTI_DATA
2
(
ctype_wchar
,
0
,
&
ctype_base_rtti_base_descriptor
,
&
locale_facet_rtti_base_descriptor
,
".?AV?$ctype@_W@std@@"
);
DEFINE_RTTI_DATA
2
(
ctype_short
,
0
,
&
ctype_base_rtti_base_descriptor
,
&
locale_facet_rtti_base_descriptor
,
".?AV?$ctype@G@std@@"
);
DEFINE_RTTI_DATA
1
(
codecvt_base
,
0
,
&
locale_facet_rtti_base_descriptor
,
".?AVcodecvt_base@std@@"
);
DEFINE_RTTI_DATA
2
(
codecvt_char
,
0
,
&
codecvt_base_rtti_base_descriptor
,
&
locale_facet_rtti_base_descriptor
,
".?AV?$codecvt@DDH@std@@"
);
DEFINE_RTTI_DATA
1
(
numpunct_char
,
0
,
&
locale_facet_rtti_base_descriptor
,
".?AV?$numpunct@D@std@@"
);
DEFINE_RTTI_DATA
1
(
numpunct_wchar
,
0
,
&
locale_facet_rtti_base_descriptor
,
".?AV?$numpunct@_W@std@@"
);
DEFINE_RTTI_DATA
1
(
numpunct_short
,
0
,
&
locale_facet_rtti_base_descriptor
,
".?AV?$numpunct@G@std@@"
);
DEFINE_RTTI_DATA
1
(
num_get_char
,
0
,
&
locale_facet_rtti_base_descriptor
,
".?AV?$num_get@DV?$istreambuf_iterator@DU?$char_traits@D@std@@@std@@@std@@"
);
DEFINE_RTTI_DATA
1
(
num_get_wchar
,
0
,
&
locale_facet_rtti_base_descriptor
,
".?AV?$num_get@_WV?$istreambuf_iterator@_WU?$char_traits@_W@std@@@std@@@std@@"
);
DEFINE_RTTI_DATA
1
(
num_get_short
,
0
,
&
locale_facet_rtti_base_descriptor
,
".?AV?$num_get@GV?$istreambuf_iterator@GU?$char_traits@G@std@@@std@@@std@@"
);
#ifndef __GNUC__
void
__asm_dummy_vtables
(
void
)
{
...
...
dlls/msvcp90/msvcp90.h
View file @
8d39c7d8
...
...
@@ -82,7 +82,7 @@ extern void* (__cdecl *MSVCRT_set_new_handler)(void*);
#endif
/* _WIN64 */
#define DEFINE_RTTI_DATA(name, off, base_classes, cl1, cl2, cl3, mangled_name) \
#define DEFINE_RTTI_DATA(name, off, base_classes, cl1, cl2, cl3,
cl4,
mangled_name) \
static const type_info name ## _type_info = { \
&MSVCP_type_info_vtable, \
NULL, \
...
...
@@ -101,7 +101,8 @@ static const rtti_base_array name ## _rtti_base_array = { \
&name ## _rtti_base_descriptor, \
cl1, \
cl2, \
cl3 \
cl3, \
cl4 \
} \
}; \
\
...
...
@@ -120,6 +121,17 @@ const rtti_object_locator name ## _rtti = { \
&name ## _hierarchy \
}
#define DEFINE_RTTI_DATA0(name, off, mangled_name) \
DEFINE_RTTI_DATA(name, off, 0, NULL, NULL, NULL, NULL, mangled_name)
#define DEFINE_RTTI_DATA1(name, off, cl1, mangled_name) \
DEFINE_RTTI_DATA(name, off, 0, cl1, NULL, NULL, NULL, mangled_name)
#define DEFINE_RTTI_DATA2(name, off, cl1, cl2, mangled_name) \
DEFINE_RTTI_DATA(name, off, 0, cl1, cl2, NULL, NULL, mangled_name)
#define DEFINE_RTTI_DATA3(name, off, cl1, cl2, cl3, mangled_name) \
DEFINE_RTTI_DATA(name, off, 0, cl1, cl2, cl3, NULL, mangled_name)
#define DEFINE_RTTI_DATA4(name, off, cl1, cl2, cl3, cl4, mangled_name) \
DEFINE_RTTI_DATA(name, off, 0, cl1, cl2, cl3, cl4, mangled_name)
#ifdef __i386__
#define CALL_VTBL_FUNC(this, off, ret, type, args) ((ret (WINAPI*)type)&vtbl_wrapper_##off)args
...
...
@@ -198,7 +210,7 @@ typedef struct _rtti_base_descriptor
typedef
struct
_rtti_base_array
{
const
rtti_base_descriptor
*
bases
[
4
];
/* First element is the class itself */
const
rtti_base_descriptor
*
bases
[
5
];
/* First element is the class itself */
}
rtti_base_array
;
typedef
struct
_rtti_object_hierarchy
...
...
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