msvcp100: Add std::generic_category() implementation.
Signed-off-by: Piotr Caban <piotr@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
21a9a8c684
commit
ede38f4fdb
|
@ -1742,8 +1742,8 @@
|
|||
@ cdecl -arch=win64 ?gcount@?$basic_istream@GU?$char_traits@G@std@@@std@@QEBA_JXZ(ptr) basic_istream_wchar_gcount
|
||||
@ thiscall -ret64 -arch=win32 ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QBE_JXZ(ptr) basic_istream_wchar_gcount
|
||||
@ cdecl -arch=win64 ?gcount@?$basic_istream@_WU?$char_traits@_W@std@@@std@@QEBA_JXZ(ptr) basic_istream_wchar_gcount
|
||||
@ stub -arch=win32 ?generic_category@std@@YAABVerror_category@1@XZ
|
||||
@ stub -arch=win64 ?generic_category@std@@YAAEBVerror_category@1@XZ
|
||||
@ cdecl -arch=win32 ?generic_category@std@@YAABVerror_category@1@XZ() std_generic_category
|
||||
@ cdecl -arch=win64 ?generic_category@std@@YAAEBVerror_category@1@XZ() std_generic_category
|
||||
@ thiscall -arch=win32 ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAD@Z(ptr ptr) basic_istream_char_get_ch
|
||||
@ cdecl -arch=win64 ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QEAAAEAV12@AEAD@Z(ptr ptr) basic_istream_char_get_ch
|
||||
@ thiscall -arch=win32 ?get@?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV12@AAV?$basic_streambuf@DU?$char_traits@D@std@@@2@@Z(ptr ptr) basic_istream_char_get_streambuf
|
||||
|
|
|
@ -736,6 +736,25 @@ const error_category* __cdecl std_system_category(void)
|
|||
TRACE("()\n");
|
||||
return &system_category.base;
|
||||
}
|
||||
|
||||
static custom_category generic_category;
|
||||
DEFINE_RTTI_DATA1(generic_category, 0, &error_category_rtti_base_descriptor, ".?AV_Generic_error_category@std@@")
|
||||
|
||||
extern const vtable_ptr MSVCP_generic_category_vtable;
|
||||
|
||||
static void generic_category_ctor(custom_category *this)
|
||||
{
|
||||
this->base.vtable = &MSVCP_generic_category_vtable;
|
||||
this->type = "generic";
|
||||
}
|
||||
|
||||
/* ?generic_category@std@@YAABVerror_category@1@XZ */
|
||||
/* ?generic_category@std@@YAAEBVerror_category@1@XZ */
|
||||
const error_category* __cdecl std_generic_category(void)
|
||||
{
|
||||
TRACE("()\n");
|
||||
return &generic_category.base;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if _MSVCP_VER >= 110
|
||||
|
@ -1026,6 +1045,13 @@ void __asm_dummy_vtables(void) {
|
|||
VTABLE_ADD_FUNC(custom_category_default_error_condition)
|
||||
VTABLE_ADD_FUNC(custom_category_equivalent)
|
||||
VTABLE_ADD_FUNC(custom_category_equivalent_code));
|
||||
__ASM_VTABLE(generic_category,
|
||||
VTABLE_ADD_FUNC(custom_category_vector_dtor)
|
||||
VTABLE_ADD_FUNC(custom_category_name)
|
||||
VTABLE_ADD_FUNC(custom_category_message)
|
||||
VTABLE_ADD_FUNC(custom_category_default_error_condition)
|
||||
VTABLE_ADD_FUNC(custom_category_equivalent)
|
||||
VTABLE_ADD_FUNC(custom_category_equivalent_code));
|
||||
#endif
|
||||
#if _MSVCP_VER >= 110
|
||||
__ASM_VTABLE(_Pad,
|
||||
|
@ -1042,6 +1068,7 @@ void init_misc(void *base)
|
|||
init_error_category_rtti(base);
|
||||
init_iostream_category_rtti(base);
|
||||
init_system_category_rtti(base);
|
||||
init_generic_category_rtti(base);
|
||||
#endif
|
||||
#if _MSVCP_VER >= 110
|
||||
init__Pad_rtti(base);
|
||||
|
@ -1051,6 +1078,7 @@ void init_misc(void *base)
|
|||
#if _MSVCP_VER == 100
|
||||
iostream_category_ctor(&iostream_category);
|
||||
system_category_ctor(&system_category);
|
||||
generic_category_ctor(&generic_category);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue