msvcp90: Set _Locimp vtable in _Locimp ctors (Valgrind).
This commit is contained in:
parent
817db8e361
commit
c17c54318a
|
@ -9966,6 +9966,9 @@ istreambuf_iterator_char* __thiscall time_get_char_get_year(const time_get_char
|
|||
return call_time_get_char_do_get_year(this, ret, s, e, base, err, t);
|
||||
}
|
||||
|
||||
/* ??_7_Locimp@locale@std@@6B@ */
|
||||
extern const vtable_ptr MSVCP_locale__Locimp_vtable;
|
||||
|
||||
/* ??0_Locimp@locale@std@@AAE@_N@Z */
|
||||
/* ??0_Locimp@locale@std@@AEAA@_N@Z */
|
||||
DEFINE_THISCALL_WRAPPER(locale__Locimp_ctor_transparent, 8)
|
||||
|
@ -9975,6 +9978,7 @@ locale__Locimp* __thiscall locale__Locimp_ctor_transparent(locale__Locimp *this,
|
|||
|
||||
memset(this, 0, sizeof(locale__Locimp));
|
||||
locale_facet_ctor_refs(&this->facet, 1);
|
||||
this->facet.vtable = &MSVCP_locale__Locimp_vtable;
|
||||
this->transparent = transparent;
|
||||
locale_string_char_ctor_cstr(&this->name, "*");
|
||||
return this;
|
||||
|
@ -10001,6 +10005,7 @@ locale__Locimp* __thiscall locale__Locimp_copy_ctor(locale__Locimp *this, const
|
|||
_Lockit_ctor_locktype(&lock, _LOCK_LOCALE);
|
||||
memcpy(this, copy, sizeof(locale__Locimp));
|
||||
locale_facet_ctor_refs(&this->facet, 1);
|
||||
this->facet.vtable = &MSVCP_locale__Locimp_vtable;
|
||||
if(copy->facetvec) {
|
||||
this->facetvec = MSVCRT_operator_new(copy->facet_cnt*sizeof(locale_facet*));
|
||||
if(!this->facetvec) {
|
||||
|
@ -10560,11 +10565,6 @@ locale__Locimp* __cdecl locale__Locimp__Makeloc(const _Locinfo *locinfo, categor
|
|||
return locimp;
|
||||
}
|
||||
|
||||
/* ??_7_Locimp@locale@std@@6B@ */
|
||||
const vtable_ptr MSVCP_locale__Locimp_vtable[] = {
|
||||
(vtable_ptr)THISCALL_NAME(locale__Locimp_vector_dtor)
|
||||
};
|
||||
|
||||
/* ??0locale@std@@AAE@PAV_Locimp@01@@Z */
|
||||
/* ??0locale@std@@AEAA@PEAV_Locimp@01@@Z */
|
||||
DEFINE_THISCALL_WRAPPER(locale_ctor_locimp, 8)
|
||||
|
@ -11066,6 +11066,7 @@ size_t __cdecl wcsrtombs(char *dst, const wchar_t **pstr, size_t n, mbstate_t *s
|
|||
|
||||
|
||||
DEFINE_RTTI_DATA0(locale_facet, 0, ".?AVfacet@locale@std@@")
|
||||
DEFINE_RTTI_DATA1(locale__Locimp, 0, &locale_facet_rtti_base_descriptor, ".?AV_Locimp@locale@std@@")
|
||||
DEFINE_RTTI_DATA1(collate_char, 0, &locale_facet_rtti_base_descriptor, ".?AV?$collate@D@std@@")
|
||||
DEFINE_RTTI_DATA1(collate_wchar, 0, &locale_facet_rtti_base_descriptor, ".?AV?$collate@_W@std@@")
|
||||
DEFINE_RTTI_DATA1(collate_short, 0, &locale_facet_rtti_base_descriptor, ".?AV?$collate@G@std@@")
|
||||
|
@ -11100,6 +11101,13 @@ void __asm_dummy_vtables(void) {
|
|||
#if _MSVCP_VER >= 110
|
||||
VTABLE_ADD_FUNC(locale_facet__Incref)
|
||||
VTABLE_ADD_FUNC(locale_facet__Decref)
|
||||
#endif
|
||||
);
|
||||
__ASM_VTABLE(locale__Locimp,
|
||||
VTABLE_ADD_FUNC(locale__Locimp_vector_dtor)
|
||||
#if _MSVCP_VER >= 110
|
||||
VTABLE_ADD_FUNC(locale_facet__Incref)
|
||||
VTABLE_ADD_FUNC(locale_facet__Decref)
|
||||
#endif
|
||||
);
|
||||
__ASM_VTABLE(collate_char,
|
||||
|
@ -11425,6 +11433,7 @@ void init_locale(void *base)
|
|||
{
|
||||
#ifdef __x86_64__
|
||||
init_locale_facet_rtti(base);
|
||||
init_locale__Locimp_rtti(base);
|
||||
init_collate_char_rtti(base);
|
||||
init_collate_wchar_rtti(base);
|
||||
init_collate_short_rtti(base);
|
||||
|
|
Loading…
Reference in New Issue