Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
9c65376d
Commit
9c65376d
authored
Dec 19, 2011
by
Piotr Caban
Committed by
Alexandre Julliard
Dec 19, 2011
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msvcp90: Use macro to define RTTI data.
parent
5761bb5d
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
59 additions
and
613 deletions
+59
-613
exception.c
dlls/msvcp90/exception.c
+6
-210
ios.c
dlls/msvcp90/ios.c
+8
-145
locale.c
dlls/msvcp90/locale.c
+7
-258
msvcp90.h
dlls/msvcp90/msvcp90.h
+38
-0
No files found.
dlls/msvcp90/exception.c
View file @
9c65376d
...
...
@@ -209,41 +209,7 @@ const char* __thiscall MSVCP_what_exception(exception * this)
return
this
->
name
?
this
->
name
:
"Unknown exception"
;
}
static
const
type_info
bad_alloc_type_info
=
{
&
MSVCP_bad_alloc_vtable
,
NULL
,
".?AVbad_alloc@std@@"
};
static
const
rtti_base_descriptor
bad_alloc_rtti_base_descriptor
=
{
&
bad_alloc_type_info
,
1
,
{
0
,
-
1
,
0
},
64
};
static
const
rtti_base_array
bad_alloc_rtti_base_array
=
{
{
&
bad_alloc_rtti_base_descriptor
,
&
exception_rtti_base_descriptor
,
NULL
}
};
static
const
rtti_object_hierarchy
bad_alloc_type_hierarchy
=
{
0
,
0
,
2
,
&
bad_alloc_rtti_base_array
};
const
rtti_object_locator
bad_alloc_rtti
=
{
0
,
0
,
0
,
&
bad_alloc_type_info
,
&
bad_alloc_type_hierarchy
};
DEFINE_RTTI_DATA
(
bad_alloc
,
0
,
1
,
&
exception_rtti_base_descriptor
,
NULL
,
NULL
,
".?AVbad_alloc@std@@"
);
static
const
cxx_type_info
bad_alloc_cxx_type_info
=
{
0
,
...
...
@@ -334,41 +300,7 @@ const char* __thiscall MSVCP_logic_error_what(logic_error *this)
return
MSVCP_basic_string_char_c_str
(
&
this
->
str
);
}
static
const
type_info
logic_error_type_info
=
{
&
MSVCP_logic_error_vtable
,
NULL
,
".?AVlogic_error@std@@"
};
static
const
rtti_base_descriptor
logic_error_rtti_base_descriptor
=
{
&
logic_error_type_info
,
1
,
{
0
,
-
1
,
0
},
64
};
static
const
rtti_base_array
logic_error_rtti_base_array
=
{
{
&
logic_error_rtti_base_descriptor
,
&
exception_rtti_base_descriptor
,
NULL
}
};
static
const
rtti_object_hierarchy
logic_error_type_hierarchy
=
{
0
,
0
,
2
,
&
logic_error_rtti_base_array
};
const
rtti_object_locator
logic_error_rtti
=
{
0
,
0
,
0
,
&
logic_error_type_info
,
&
logic_error_type_hierarchy
};
DEFINE_RTTI_DATA
(
logic_error
,
0
,
1
,
&
exception_rtti_base_descriptor
,
NULL
,
NULL
,
".?AVlogic_error@std@@"
);
static
const
cxx_type_info
logic_error_cxx_type_info
=
{
0
,
...
...
@@ -425,41 +357,7 @@ void* __thiscall MSVCP_length_error_vector_dtor(
return
MSVCP_logic_error_vector_dtor
(
this
,
flags
);
}
static
const
type_info
length_error_type_info
=
{
&
MSVCP_length_error_vtable
,
NULL
,
".?AVlength_error@std@@"
};
static
const
rtti_base_descriptor
length_error_rtti_base_descriptor
=
{
&
length_error_type_info
,
2
,
{
0
,
-
1
,
0
},
64
};
static
const
rtti_base_array
length_error_rtti_base_array
=
{
{
&
length_error_rtti_base_descriptor
,
&
logic_error_rtti_base_descriptor
,
&
exception_rtti_base_descriptor
}
};
static
const
rtti_object_hierarchy
length_error_type_hierarchy
=
{
0
,
0
,
3
,
&
length_error_rtti_base_array
};
const
rtti_object_locator
length_error_rtti
=
{
0
,
0
,
0
,
&
length_error_type_info
,
&
length_error_type_hierarchy
};
DEFINE_RTTI_DATA
(
length_error
,
0
,
2
,
&
logic_error_rtti_base_descriptor
,
&
exception_rtti_base_descriptor
,
NULL
,
".?AVlength_error@std@@"
);
static
const
cxx_type_info
length_error_cxx_type_info
=
{
0
,
...
...
@@ -516,41 +414,7 @@ void* __thiscall MSVCP_out_of_range_vector_dtor(
return
MSVCP_logic_error_vector_dtor
(
this
,
flags
);
}
static
const
type_info
out_of_range_type_info
=
{
&
MSVCP_out_of_range_vtable
,
NULL
,
".?AVout_of_range@std@@"
};
static
const
rtti_base_descriptor
out_of_range_rtti_base_descriptor
=
{
&
out_of_range_type_info
,
2
,
{
0
,
-
1
,
0
},
64
};
static
const
rtti_base_array
out_of_range_rtti_base_array
=
{
{
&
out_of_range_rtti_base_descriptor
,
&
logic_error_rtti_base_descriptor
,
&
exception_rtti_base_descriptor
}
};
static
const
rtti_object_hierarchy
out_of_range_type_hierarchy
=
{
0
,
0
,
3
,
&
out_of_range_rtti_base_array
};
const
rtti_object_locator
out_of_range_rtti
=
{
0
,
0
,
0
,
&
out_of_range_type_info
,
&
out_of_range_type_hierarchy
};
DEFINE_RTTI_DATA
(
out_of_range
,
0
,
2
,
&
logic_error_rtti_base_descriptor
,
&
exception_rtti_base_descriptor
,
NULL
,
".?AVout_of_range@std@@"
);
static
const
cxx_type_info
out_of_range_cxx_type_info
=
{
0
,
...
...
@@ -607,41 +471,7 @@ void* __thiscall MSVCP_invalid_argument_vector_dtor(
return
MSVCP_logic_error_vector_dtor
(
this
,
flags
);
}
static
const
type_info
invalid_argument_type_info
=
{
&
MSVCP_invalid_argument_vtable
,
NULL
,
".?AVinvalid_argument@std@@"
};
static
const
rtti_base_descriptor
invalid_argument_rtti_base_descriptor
=
{
&
invalid_argument_type_info
,
2
,
{
0
,
-
1
,
0
},
64
};
static
const
rtti_base_array
invalid_argument_rtti_base_array
=
{
{
&
invalid_argument_rtti_base_descriptor
,
&
logic_error_rtti_base_descriptor
,
&
exception_rtti_base_descriptor
}
};
static
const
rtti_object_hierarchy
invalid_argument_type_hierarchy
=
{
0
,
0
,
3
,
&
invalid_argument_rtti_base_array
};
const
rtti_object_locator
invalid_argument_rtti
=
{
0
,
0
,
0
,
&
invalid_argument_type_info
,
&
invalid_argument_type_hierarchy
};
DEFINE_RTTI_DATA
(
invalid_argument
,
0
,
2
,
&
logic_error_rtti_base_descriptor
,
&
exception_rtti_base_descriptor
,
NULL
,
".?AVinvalid_argument@std@@"
);
static
const
cxx_type_info
invalid_argument_cxx_type_info
=
{
0
,
...
...
@@ -725,41 +555,7 @@ void* __thiscall MSVCP_runtime_error_vector_dtor(
return
this
;
}
static
const
type_info
runtime_error_type_info
=
{
&
MSVCP_runtime_error_vtable
,
NULL
,
".?AVruntime_error@std@@"
};
static
const
rtti_base_descriptor
runtime_error_rtti_base_descriptor
=
{
&
runtime_error_type_info
,
1
,
{
0
,
-
1
,
0
},
64
};
static
const
rtti_base_array
runtime_error_rtti_base_array
=
{
{
&
runtime_error_rtti_base_descriptor
,
&
exception_rtti_base_descriptor
,
NULL
}
};
static
const
rtti_object_hierarchy
runtime_error_type_hierarchy
=
{
0
,
0
,
2
,
&
runtime_error_rtti_base_array
};
const
rtti_object_locator
runtime_error_rtti
=
{
0
,
0
,
0
,
&
runtime_error_type_info
,
&
runtime_error_type_hierarchy
};
DEFINE_RTTI_DATA
(
runtime_error
,
0
,
1
,
&
exception_rtti_base_descriptor
,
NULL
,
NULL
,
".?AVruntime_error@std@@"
);
static
const
cxx_type_info
runtime_error_cxx_type_info
=
{
0
,
...
...
dlls/msvcp90/ios.c
View file @
9c65376d
...
...
@@ -154,25 +154,12 @@ extern const vtable_ptr MSVCP_basic_streambuf_char_vtable;
/* ??_7?$basic_ostream@DU?$char_traits@D@std@@@std@@6B@ */
extern
const
vtable_ptr
MSVCP_basic_ostream_char_vtable
;
static
const
type_info
ios_base_type_info
=
{
&
MSVCP_ios_base_vtable
,
NULL
,
".?AVios_base@std@@"
};
static
const
rtti_base_descriptor
ios_base_rtti_base_descriptor
=
{
&
ios_base_type_info
,
1
,
{
0
,
-
1
,
0
},
64
};
static
const
type_info
iosb_type_info
=
{
&
MSVCP_ios_base_vtable
,
NULL
,
".?AV?$_Iosb@H@std@@"
};
static
const
rtti_base_descriptor
iosb_rtti_base_descriptor
=
{
&
iosb_type_info
,
0
,
...
...
@@ -180,137 +167,13 @@ static const rtti_base_descriptor iosb_rtti_base_descriptor = {
64
};
static
const
rtti_base_array
ios_base_rtti_base_array
=
{
{
&
ios_base_rtti_base_descriptor
,
&
iosb_rtti_base_descriptor
,
NULL
}
};
static
const
rtti_object_hierarchy
ios_base_type_hierarchy
=
{
0
,
0
,
2
,
&
ios_base_rtti_base_array
};
const
rtti_object_locator
ios_base_rtti
=
{
0
,
0
,
0
,
&
ios_base_type_info
,
&
ios_base_type_hierarchy
};
static
const
type_info
basic_ios_char_type_info
=
{
&
MSVCP_basic_ios_char_vtable
,
NULL
,
".?AV?$basic_ios@DU?$char_traits@D@std@@@std@@"
};
static
const
rtti_base_descriptor
basic_ios_char_rtti_base_descriptor
=
{
&
basic_ios_char_type_info
,
2
,
{
0
,
-
1
,
0
},
64
};
static
const
rtti_base_array
basic_ios_char_rtti_base_array
=
{
{
&
basic_ios_char_rtti_base_descriptor
,
&
ios_base_rtti_base_descriptor
,
&
iosb_rtti_base_descriptor
}
};
static
const
rtti_object_hierarchy
basic_ios_char_hierarchy
=
{
0
,
0
,
3
,
&
basic_ios_char_rtti_base_array
};
const
rtti_object_locator
basic_ios_char_rtti
=
{
0
,
0
,
0
,
&
basic_ios_char_type_info
,
&
basic_ios_char_hierarchy
};
static
const
type_info
basic_streambuf_char_type_info
=
{
&
MSVCP_basic_streambuf_char_vtable
,
NULL
,
".?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@"
};
static
const
rtti_base_descriptor
basic_streambuf_char_rtti_base_descriptor
=
{
&
basic_streambuf_char_type_info
,
0
,
{
0
,
-
1
,
0
},
64
};
static
const
rtti_base_array
basic_streambuf_char_rtti_base_array
=
{
{
&
basic_streambuf_char_rtti_base_descriptor
,
NULL
,
NULL
}
};
static
const
rtti_object_hierarchy
basic_streambuf_char_hierarchy
=
{
0
,
0
,
1
,
&
basic_streambuf_char_rtti_base_array
};
const
rtti_object_locator
basic_streambuf_char_rtti
=
{
0
,
0
,
0
,
&
basic_streambuf_char_type_info
,
&
basic_streambuf_char_hierarchy
};
static
const
type_info
basic_ostream_char_type_info
=
{
&
MSVCP_basic_ostream_char_vtable
,
NULL
,
".?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@"
};
static
const
rtti_base_descriptor
basic_ostream_char_rtti_base_descriptor
=
{
&
basic_ostream_char_type_info
,
3
,
{
0
,
-
1
,
0
},
64
};
static
const
rtti_base_array
basic_ostream_char_rtti_base_array
=
{
{
&
basic_ostream_char_rtti_base_descriptor
,
&
basic_ios_char_rtti_base_descriptor
,
&
ios_base_rtti_base_descriptor
,
&
iosb_rtti_base_descriptor
}
};
static
const
rtti_object_hierarchy
basic_ostream_char_hierarchy
=
{
0
,
0
,
4
,
&
basic_ostream_char_rtti_base_array
};
const
rtti_object_locator
basic_ostream_char_rtti
=
{
0
,
4
,
0
,
&
basic_ostream_char_type_info
,
&
basic_ostream_char_hierarchy
};
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_streambuf_char
,
0
,
0
,
NULL
,
NULL
,
NULL
,
".?AV?$basic_streambuf@DU?$char_traits@D@std@@@std@@"
);
DEFINE_RTTI_DATA
(
basic_ostream_char
,
4
,
3
,
&
basic_ios_char_rtti_base_descriptor
,
&
ios_base_rtti_base_descriptor
,
&
iosb_rtti_base_descriptor
,
".?AV?$basic_ostream@DU?$char_traits@D@std@@@std@@"
);
#ifndef __GNUC__
void
__asm_dummy_vtables
(
void
)
{
...
...
dlls/msvcp90/locale.c
View file @
9c65376d
...
...
@@ -2356,264 +2356,13 @@ static const rtti_base_descriptor locale_facet_rtti_base_descriptor = {
64
};
static
const
type_info
collate_char_type_info
=
{
&
MSVCP_collate_char_vtable
,
NULL
,
".?AV?$collate@D@std@@"
};
static
const
rtti_base_descriptor
collate_char_rtti_base_descriptor
=
{
&
collate_char_type_info
,
1
,
{
0
,
-
1
,
0
},
64
};
static
const
rtti_base_array
collate_char_rtti_base_array
=
{
{
&
collate_char_rtti_base_descriptor
,
&
locale_facet_rtti_base_descriptor
,
NULL
,
NULL
}
};
static
const
rtti_object_hierarchy
collate_char_hierarchy
=
{
0
,
0
,
2
,
&
collate_char_rtti_base_array
};
const
rtti_object_locator
collate_char_rtti
=
{
0
,
0
,
0
,
&
collate_char_type_info
,
&
collate_char_hierarchy
};
static
const
type_info
collate_wchar_type_info
=
{
&
MSVCP_collate_wchar_vtable
,
NULL
,
".?AV?$collate@_W@std@@"
};
static
const
rtti_base_descriptor
collate_wchar_rtti_base_descriptor
=
{
&
collate_wchar_type_info
,
1
,
{
0
,
-
1
,
0
},
64
};
static
const
rtti_base_array
collate_wchar_rtti_base_array
=
{
{
&
collate_wchar_rtti_base_descriptor
,
&
locale_facet_rtti_base_descriptor
,
NULL
,
NULL
}
};
static
const
rtti_object_hierarchy
collate_wchar_hierarchy
=
{
0
,
0
,
2
,
&
collate_wchar_rtti_base_array
};
const
rtti_object_locator
collate_wchar_rtti
=
{
0
,
0
,
0
,
&
collate_wchar_type_info
,
&
collate_wchar_hierarchy
};
static
const
type_info
collate_short_type_info
=
{
&
MSVCP_collate_short_vtable
,
NULL
,
".?AV?$collate@G@std@@"
};
static
const
rtti_base_descriptor
collate_short_rtti_base_descriptor
=
{
&
collate_short_type_info
,
1
,
{
0
,
-
1
,
0
},
64
};
static
const
rtti_base_array
collate_short_rtti_base_array
=
{
{
&
collate_short_rtti_base_descriptor
,
&
locale_facet_rtti_base_descriptor
,
NULL
,
NULL
}
};
static
const
rtti_object_hierarchy
collate_short_hierarchy
=
{
0
,
0
,
2
,
&
collate_short_rtti_base_array
};
const
rtti_object_locator
collate_short_rtti
=
{
0
,
0
,
0
,
&
collate_short_type_info
,
&
collate_short_hierarchy
};
static
const
type_info
ctype_base_type_info
=
{
&
MSVCP_ctype_base_vtable
,
NULL
,
".?AUctype_base@std@@"
};
static
const
rtti_base_descriptor
ctype_base_rtti_base_descriptor
=
{
&
ctype_base_type_info
,
1
,
{
0
,
-
1
,
0
},
64
};
static
const
rtti_base_array
ctype_base_rtti_base_array
=
{
{
&
ctype_base_rtti_base_descriptor
,
&
locale_facet_rtti_base_descriptor
,
NULL
,
NULL
}
};
static
const
rtti_object_hierarchy
ctype_base_hierarchy
=
{
0
,
0
,
2
,
&
ctype_base_rtti_base_array
};
const
rtti_object_locator
ctype_base_rtti
=
{
0
,
0
,
0
,
&
ctype_base_type_info
,
&
ctype_base_hierarchy
};
static
const
type_info
ctype_char_type_info
=
{
&
MSVCP_ctype_char_vtable
,
NULL
,
".?AV?$ctype@D@std@@"
};
static
const
rtti_base_descriptor
ctype_char_rtti_base_descriptor
=
{
&
ctype_char_type_info
,
2
,
{
0
,
-
1
,
0
},
64
};
static
const
rtti_base_array
ctype_char_rtti_base_array
=
{
{
&
ctype_char_rtti_base_descriptor
,
&
ctype_base_rtti_base_descriptor
,
&
locale_facet_rtti_base_descriptor
,
NULL
}
};
static
const
rtti_object_hierarchy
ctype_char_hierarchy
=
{
0
,
0
,
3
,
&
ctype_char_rtti_base_array
};
const
rtti_object_locator
ctype_char_rtti
=
{
0
,
0
,
0
,
&
ctype_char_type_info
,
&
ctype_char_hierarchy
};
static
const
type_info
ctype_wchar_type_info
=
{
&
MSVCP_ctype_wchar_vtable
,
NULL
,
".?AV?$ctype@_W@std@@"
};
static
const
rtti_base_descriptor
ctype_wchar_rtti_base_descriptor
=
{
&
ctype_wchar_type_info
,
2
,
{
0
,
-
1
,
0
},
64
};
static
const
rtti_base_array
ctype_wchar_rtti_base_array
=
{
{
&
ctype_wchar_rtti_base_descriptor
,
&
ctype_base_rtti_base_descriptor
,
&
locale_facet_rtti_base_descriptor
,
NULL
}
};
static
const
rtti_object_hierarchy
ctype_wchar_hierarchy
=
{
0
,
0
,
3
,
&
ctype_wchar_rtti_base_array
};
const
rtti_object_locator
ctype_wchar_rtti
=
{
0
,
0
,
0
,
&
ctype_wchar_type_info
,
&
ctype_wchar_hierarchy
};
static
const
type_info
ctype_short_type_info
=
{
&
MSVCP_ctype_short_vtable
,
NULL
,
".?AV?$ctype@G@std@@"
};
static
const
rtti_base_descriptor
ctype_short_rtti_base_descriptor
=
{
&
ctype_short_type_info
,
2
,
{
0
,
-
1
,
0
},
64
};
static
const
rtti_base_array
ctype_short_rtti_base_array
=
{
{
&
ctype_short_rtti_base_descriptor
,
&
ctype_base_rtti_base_descriptor
,
&
locale_facet_rtti_base_descriptor
,
NULL
}
};
static
const
rtti_object_hierarchy
ctype_short_hierarchy
=
{
0
,
0
,
3
,
&
ctype_short_rtti_base_array
};
const
rtti_object_locator
ctype_short_rtti
=
{
0
,
0
,
0
,
&
ctype_short_type_info
,
&
ctype_short_hierarchy
};
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@@"
);
#ifndef __GNUC__
void
__asm_dummy_vtables
(
void
)
{
...
...
dlls/msvcp90/msvcp90.h
View file @
9c65376d
...
...
@@ -92,6 +92,44 @@ extern void* (__cdecl *MSVCRT_set_new_handler)(void*);
#endif
/* _WIN64 */
#define DEFINE_RTTI_DATA(name, off, base_classes, cl1, cl2, cl3, mangled_name) \
static const type_info name ## _type_info = { \
&MSVCP_ ## name ## _vtable, \
NULL, \
mangled_name \
}; \
\
static const rtti_base_descriptor name ## _rtti_base_descriptor = { \
&name ##_type_info, \
base_classes, \
{ 0, -1, 0}, \
64 \
}; \
\
static const rtti_base_array name ## _rtti_base_array = { \
{ \
&name ## _rtti_base_descriptor, \
cl1, \
cl2, \
cl3 \
} \
}; \
\
static const rtti_object_hierarchy name ## _hierarchy = { \
0, \
0, \
base_classes+1, \
&name ## _rtti_base_array \
}; \
\
const rtti_object_locator name ## _rtti = { \
0, \
off, \
0, \
&name ## _type_info, \
&name ## _hierarchy \
}
/* exception object */
typedef
void
(
*
vtable_ptr
)(
void
);
typedef
struct
__exception
...
...
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