msvcp90: Add codecvt ctors and dtors
William Panlener
wpanlener at gmail.com
Sun Apr 15 19:50:59 CDT 2012
---
dlls/msvcp90/locale.c | 362 +++++++++++++++++++++++++++++++++++++++++++++
dlls/msvcp90/msvcp90.h | 18 +++
dlls/msvcp90/msvcp90.spec | 110 +++++++-------
3 files changed, 435 insertions(+), 55 deletions(-)
diff --git a/dlls/msvcp90/locale.c b/dlls/msvcp90/locale.c
index 396f9ec..f659edd 100644
--- a/dlls/msvcp90/locale.c
+++ b/dlls/msvcp90/locale.c
@@ -88,6 +88,27 @@ typedef struct {
} _Cvtvec;
typedef struct {
+ locale_facet facet;
+ /* FIXME: type definition in standard but var here */
+ enum { ok, partial, error, noconv } result;
+} codecvt_base;
+
+typedef struct {
+ codecvt_base base;
+ /* FIXME: incomplete struct definition */
+} codecvt_char_char_mbstate;
+
+typedef struct {
+ codecvt_base base;
+ /* FIXME: incomplete struct definition */
+} codecvt_short_char_mbstate;
+
+typedef struct {
+ codecvt_base base;
+ /* FIXME: incomplete struct definition */
+} codecvt_wchar_char_mbstate;
+
+typedef struct {
locale_facet facet;
_Collvec coll;
} collate;
@@ -664,6 +685,339 @@ _Timevec*__thiscall _Locinfo__Gettnames(const _Locinfo *this, _Timevec *ret)
return ret;
}
+/* FIXME: Potentially unused */
+/* ?id@?$codecvt at DDH@std@@2V0locale at 2@A */
+locale_id codecvt_char_char_mbstate_id = {0};
+
+/* ?id@?$codecvt at GDH@std@@2V0locale at 2@A */
+locale_id codecvt_short_char_mbstate_id = {0};
+
+/* ?id@?$codecvt at _WDH@std@@2V0locale at 2@A */
+locale_id codecvt_wchar_char_mbstate_id = {0};
+
+/* ??_7codecvt_base at std@@6B@ */
+extern const vtable_ptr MSVCP_codecvt_base_vtable;
+
+/* ??_7?$codecvt at DDH@std@@6B@ */
+extern const vtable_ptr MSVCP_codecvt_char_char_mbstate_vtable;
+
+/* ??_7?$codecvt at GDH@std@@6B@ */
+extern const vtable_ptr MSVCP_codecvt_short_char_mbstate_vtable;
+
+/* ??_7?$codecvt at _WDH@std@@6B@ */
+extern const vtable_ptr MSVCP_codecvt_wchar_char_mbstate_vtable;
+
+/* ?_Id_func@?$codecvt at GDH@std@@SAAAVid at locale@2 at XZ */
+/* ?_Id_func@?$codecvt at GDH@std@@SAAEAVid at locale@2 at XZ */
+locale_id* __cdecl codecvt_short_char_mbstate__Id_func(void)
+{
+ TRACE("()\n");
+ return &codecvt_short_char_mbstate_id;
+}
+
+/* ?_Id_func@?$codecvt at _WDH@std@@SAAAVid at locale@2 at XZ */
+/* ?_Id_func@?$codecvt at _WDH@std@@SAAEAVid at locale@2 at XZ */
+locale_id* __cdecl codecvt_wchar_char_mbstate__Id_func(void)
+{
+ TRACE("()\n");
+ return &codecvt_wchar_char_mbstate_id;
+}
+
+/* ?_Init@?$codecvt at DDH@std@@IAEXABV_Locinfo at 2@@Z */
+/* ?_Init@?$codecvt at DDH@std@@IEAAXAEBV_Locinfo at 2@@Z */
+DEFINE_THISCALL_WRAPPER(codecvt_char_char_mbstate__Init, 8)
+void __thiscall codecvt_char_char_mbstate__Init(codecvt_char_char_mbstate *this, const _Locinfo *locinfo)
+{
+ FIXME("(%p %p): stub!\n", this, locinfo);
+}
+
+/* ?_Init@?$codecvt at GDH@std@@IAEXABV_Locinfo at 2@@Z */
+/* ?_Init@?$codecvt at GDH@std@@IEAAXAEBV_Locinfo at 2@@Z */
+DEFINE_THISCALL_WRAPPER(codecvt_short_char_mbstate__Init, 8)
+void __thiscall codecvt_short_char_mbstate__Init(codecvt_short_char_mbstate *this, const _Locinfo *locinfo)
+{
+ FIXME("(%p %p): stub!\n", this, locinfo);
+}
+
+/* ?_Init@?$codecvt at _WDH@std@@IAEXABV_Locinfo at 2@@Z */
+/* ?_Init@?$codecvt at _WDH@std@@IEAAXAEBV_Locinfo at 2@@Z */
+DEFINE_THISCALL_WRAPPER(codecvt_wchar_char_mbstate__Init, 8)
+void __thiscall codecvt_wchar_char_mbstate__Init(codecvt_wchar_char_mbstate *this, const _Locinfo *locinfo)
+{
+ FIXME("(%p %p): stub!\n", this, locinfo);
+}
+
+/* ??0codecvt_base at std@@QAE at I@Z */
+/* ??0codecvt_base at std@@QEAA at _K@Z */
+DEFINE_THISCALL_WRAPPER(codecvt_base_ctor_refs, 8)
+codecvt_base* __thiscall codecvt_base_ctor_refs(codecvt_base *this, MSVCP_size_t refs)
+{
+ TRACE("(%p %lu)\n", this, refs);
+ locale_facet_ctor_refs(&this->facet, refs);
+ this->facet.vtable = &MSVCP_codecvt_base_vtable;
+ return this;
+}
+
+/* ??0?$codecvt at DDH@std@@QAE at I@Z */
+/* ??0?$codecvt at DDH@std@@QEAA at _K@Z */
+DEFINE_THISCALL_WRAPPER(codecvt_char_char_mbstate_ctor_refs, 8)
+codecvt_char_char_mbstate* __thiscall codecvt_char_char_mbstate_ctor_refs(codecvt_char_char_mbstate *this, MSVCP_size_t refs)
+{
+ _Locinfo locinfo;
+
+ TRACE("(%p %lu)\n", this, refs);
+
+ codecvt_base_ctor_refs(&this->base, refs);
+ this->base.facet.vtable = &MSVCP_codecvt_char_char_mbstate_vtable;
+
+ _Locinfo_ctor(&locinfo);
+ codecvt_char_char_mbstate__Init(this, &locinfo);
+ _Locinfo_dtor(&locinfo);
+ return this;
+}
+
+/* ??0?$codecvt at GDH@std@@QAE at I@Z */
+/* ??0?$codecvt at DDH@std@@QEAA at _K@Z */
+DEFINE_THISCALL_WRAPPER(codecvt_short_char_mbstate_ctor_refs, 8)
+codecvt_short_char_mbstate* __thiscall codecvt_short_char_mbstate_ctor_refs(codecvt_short_char_mbstate *this, MSVCP_size_t refs)
+{
+ _Locinfo locinfo;
+
+ TRACE("(%p %lu)\n", this, refs);
+
+ codecvt_base_ctor_refs(&this->base, refs);
+ this->base.facet.vtable = &MSVCP_codecvt_short_char_mbstate_vtable;
+
+ _Locinfo_ctor(&locinfo);
+ codecvt_short_char_mbstate__Init(this, &locinfo);
+ _Locinfo_dtor(&locinfo);
+ return this;
+}
+
+/* ??0?$codecvt at _WDH@std@@QAE at I@Z */
+/* ??0?$codecvt at _WDH@std@@QEAA at _K@Z */
+DEFINE_THISCALL_WRAPPER(codecvt_wchar_char_mbstate_ctor_refs, 8)
+codecvt_wchar_char_mbstate* __thiscall codecvt_wchar_char_mbstate_ctor_refs(codecvt_wchar_char_mbstate *this, MSVCP_size_t refs)
+{
+ _Locinfo locinfo;
+
+ TRACE("(%p %lu)\n", this, refs);
+
+ codecvt_base_ctor_refs(&this->base, refs);
+ this->base.facet.vtable = &MSVCP_codecvt_wchar_char_mbstate_vtable;
+
+ _Locinfo_ctor(&locinfo);
+ codecvt_wchar_char_mbstate__Init(this, &locinfo);
+ _Locinfo_dtor(&locinfo);
+ return this;
+}
+
+/* ??0?$codecvt at GDH@std@@IAE at PBDI@Z */
+/* ??0?$codecvt at GDH@std@@IEAA at PEBD_K@Z */
+DEFINE_THISCALL_WRAPPER(codecvt_short_char_mbstate_ctor_name, 12)
+codecvt_short_char_mbstate* __thiscall codecvt_short_char_mbstate_ctor_name(codecvt_short_char_mbstate *this, const char *name, MSVCP_size_t refs)
+{
+ _Locinfo locinfo;
+
+ TRACE("(%p %p %lu)\n", this, name, refs);
+
+ codecvt_base_ctor_refs(&this->base, refs);
+ this->base.facet.vtable = &MSVCP_codecvt_short_char_mbstate_vtable;
+
+ _Locinfo_ctor_cstr(&locinfo, name);
+ codecvt_short_char_mbstate__Init(this, &locinfo);
+ _Locinfo_dtor(&locinfo);
+ return this;
+}
+
+/* ??0?$codecvt at DDH@std@@QAE at ABV_Locinfo@1 at I@Z */
+/* ??0?$codecvt at DDH@std@@QEAA at AEBV_Locinfo@1 at _K@Z */
+DEFINE_THISCALL_WRAPPER(codecvt_char_char_mbstate_ctor_locinfo, 12)
+codecvt_char_char_mbstate* __thiscall codecvt_char_char_mbstate_ctor_locinfo(codecvt_char_char_mbstate *this, _Locinfo *locinfo, MSVCP_size_t refs)
+{
+ TRACE("(%p %p %lu)\n", this, locinfo, refs);
+ codecvt_base_ctor_refs(&this->base, refs);
+ this->base.facet.vtable = &MSVCP_codecvt_char_char_mbstate_vtable;
+ codecvt_char_char_mbstate__Init(this, locinfo);
+ return this;
+}
+
+/* ??0?$codecvt at GDH@std@@QAE at ABV_Locinfo@1 at I@Z */
+/* ??0?$codecvt at GDH@std@@QEAA at AEBV_Locinfo@1 at _K@Z */
+DEFINE_THISCALL_WRAPPER(codecvt_short_char_mbstate_ctor_locinfo, 12)
+codecvt_short_char_mbstate* __thiscall codecvt_short_char_mbstate_ctor_locinfo(codecvt_short_char_mbstate *this, _Locinfo *locinfo, MSVCP_size_t refs)
+{
+ TRACE("(%p %p %lu)\n", this, locinfo, refs);
+ codecvt_base_ctor_refs(&this->base, refs);
+ this->base.facet.vtable = &MSVCP_codecvt_short_char_mbstate_vtable;
+ codecvt_short_char_mbstate__Init(this, locinfo);
+ return this;
+}
+
+/* ??0?$codecvt at _WDH@std@@QAE at ABV_Locinfo@1 at I@Z */
+/* ??0?$codecvt at _WDH@std@@QEAA at AEBV_Locinfo@1 at _K@Z */
+DEFINE_THISCALL_WRAPPER(codecvt_wchar_char_mbstate_ctor_locinfo, 12)
+codecvt_wchar_char_mbstate* __thiscall codecvt_wchar_char_mbstate_ctor_locinfo(codecvt_wchar_char_mbstate *this, _Locinfo *locinfo, MSVCP_size_t refs)
+{
+ TRACE("(%p %p %lu)\n", this, locinfo, refs);
+ codecvt_base_ctor_refs(&this->base, refs);
+ this->base.facet.vtable = &MSVCP_codecvt_wchar_char_mbstate_vtable;
+ codecvt_wchar_char_mbstate__Init(this, locinfo);
+ return this;
+}
+
+/* ??_Fcodecvt_base at std@@QAEXXZ */
+/* ??_Fcodecvt_base at std@@QEAAXXZ */
+DEFINE_THISCALL_WRAPPER(codecvt_base_ctor, 4)
+codecvt_base* __thiscall codecvt_base_ctor(codecvt_base *this)
+{
+ TRACE("(%p)\n", this);
+ return codecvt_base_ctor_refs(this, 0);
+}
+
+/* ??_F?$codecvt at DDH@std@@QAEXXZ */
+/* ??_F?$codecvt at DDH@std@@QEAAXXZ */
+DEFINE_THISCALL_WRAPPER(codecvt_char_char_mbstate_ctor, 4)
+codecvt_char_char_mbstate* __thiscall codecvt_char_char_mbstate_ctor(codecvt_char_char_mbstate *this)
+{
+ TRACE("(%p)\n", this);
+ return codecvt_char_char_mbstate_ctor_refs(this, 0);
+}
+
+/* ??_F?$codecvt at GDH@std@@QAEXXZ */
+/* ??_F?$codecvt at GDH@std@@QEAAXXZ */
+DEFINE_THISCALL_WRAPPER(codecvt_short_char_mbstate_ctor, 4)
+codecvt_short_char_mbstate* __thiscall codecvt_short_char_mbstate_ctor(codecvt_short_char_mbstate *this)
+{
+ TRACE("(%p)\n", this);
+ return codecvt_short_char_mbstate_ctor_refs(this, 0);
+}
+
+/* ??_F?$codecvt at _WDH@std@@QAEXXZ */
+/* ??_F?$codecvt at _WDH@std@@QEAAXXZ */
+DEFINE_THISCALL_WRAPPER(codecvt_wchar_char_mbstate_ctor, 4)
+codecvt_wchar_char_mbstate* __thiscall codecvt_wchar_char_mbstate_ctor(codecvt_wchar_char_mbstate *this)
+{
+ TRACE("(%p)\n", this);
+ return codecvt_wchar_char_mbstate_ctor_refs(this, 0);
+}
+
+/* ?_Getcat@?$codecvt at DDH@std@@SAIPAPBVfacet at locale@2 at PBV42@@Z */
+/* ?_Getcat@?$codecvt at DDH@std@@SA_KPEAPEBVfacet at locale@2 at PEBV42@@Z */
+MSVCP_size_t __cdecl codecvt_char_char_mbstate__Getcat(const locale_facet **facet, const locale *loc)
+{
+ TRACE("(%p %p)\n", facet, loc);
+
+ if(facet && !*facet) {
+ _Locinfo locinfo;
+
+ *facet = MSVCRT_operator_new(sizeof(codecvt_char_char_mbstate));
+ if(!*facet) {
+ ERR("Out of memory\n");
+ throw_exception(EXCEPTION_BAD_ALLOC, NULL);
+ return 0;
+ }
+
+ _Locinfo_ctor_cstr(&locinfo, MSVCP_basic_string_char_c_str(&loc->ptr->name));
+ codecvt_char_char_mbstate_ctor_locinfo((codecvt_char_char_mbstate*)*facet, &locinfo, 0);
+ _Locinfo_dtor(&locinfo);
+ }
+
+ return LC_CTYPE;
+}
+
+/* ?_Getcat@?$codecvt at GDH@std@@SAIPAPBVfacet at locale@2 at PBV42@@Z */
+/* ?_Getcat@?$codecvt at GDH@std@@SA_KPEAPEBVfacet at locale@2 at PEBV42@@Z */
+MSVCP_size_t __cdecl codecvt_short_char_mbstate__Getcat(const locale_facet **facet, const locale *loc)
+{
+ TRACE("(%p %p)\n", facet, loc);
+
+ if(facet && !*facet) {
+ _Locinfo locinfo;
+
+ *facet = MSVCRT_operator_new(sizeof(codecvt_short_char_mbstate));
+ if(!*facet) {
+ ERR("Out of memory\n");
+ throw_exception(EXCEPTION_BAD_ALLOC, NULL);
+ return 0;
+ }
+
+ _Locinfo_ctor_cstr(&locinfo, MSVCP_basic_string_char_c_str(&loc->ptr->name));
+ codecvt_short_char_mbstate_ctor_locinfo((codecvt_short_char_mbstate*)*facet, &locinfo, 0);
+ _Locinfo_dtor(&locinfo);
+ }
+
+ return LC_CTYPE;
+}
+
+/* ?_Getcat@?$codecvt at _WDH@std@@SAIPAPBVfacet at locale@2 at PBV42@@Z */
+/* ?_Getcat@?$codecvt at _WDH@std@@SA_KPEAPEBVfacet at locale@2 at PEBV42@@Z */
+MSVCP_size_t __cdecl codecvt_wchar_char_mbstate__Getcat(const locale_facet **facet, const locale *loc)
+{
+ TRACE("(%p %p)\n", facet, loc);
+
+ if(facet && !*facet) {
+ _Locinfo locinfo;
+
+ *facet = MSVCRT_operator_new(sizeof(codecvt_wchar_char_mbstate));
+ if(!*facet) {
+ ERR("Out of memory\n");
+ throw_exception(EXCEPTION_BAD_ALLOC, NULL);
+ return 0;
+ }
+
+ _Locinfo_ctor_cstr(&locinfo, MSVCP_basic_string_char_c_str(&loc->ptr->name));
+ codecvt_wchar_char_mbstate_ctor_locinfo((codecvt_wchar_char_mbstate*)*facet, &locinfo, 0);
+ _Locinfo_dtor(&locinfo);
+ }
+
+ return LC_CTYPE;
+}
+
+/* ??1codecvt_base at std@@UAE at XZ */
+/* ??1codecvt_base at std@@UEAA at XZ */
+DEFINE_THISCALL_WRAPPER(codecvt_base_dtor, 4)
+void __thiscall codecvt_base_dtor(codecvt_base *this)
+{
+ FIXME("(%p)\n stub!", this);
+ TRACE("(%p)\n", this);
+}
+
+/* ??1?$codecvt at DDH@std@@MAE at XZ */
+/* ??1?$codecvt at DDH@std@@MEAA at XZ */
+DEFINE_THISCALL_WRAPPER(codecvt_char_char_mbstate_dtor, 4)
+void __thiscall codecvt_char_char_mbstate_dtor(codecvt_char_char_mbstate *this)
+{
+ /*FIXME stub*/
+ codecvt_base_dtor(&this->base);
+ TRACE("(%p)\n", this);
+}
+
+/* ??1?$codecvt at GDH@std@@MAE at XZ */
+/* ??1?$codecvt at GDH@std@@MEAA at XZ */
+DEFINE_THISCALL_WRAPPER(codecvt_short_char_mbstate_dtor, 4)
+void __thiscall codecvt_short_char_mbstate_dtor(codecvt_short_char_mbstate *this)
+{
+ /*FIXME stub*/
+ codecvt_base_dtor(&this->base);
+ TRACE("(%p)\n", this);
+}
+
+/* ??1?$codecvt at _WDH@std@@MAE at XZ */
+/* ??1?$codecvt at _WDH@std@@MEAA at XZ */
+DEFINE_THISCALL_WRAPPER(codecvt_wchar_char_mbstate_dtor, 4)
+void __thiscall codecvt_wchar_char_mbstate_dtor(codecvt_wchar_char_mbstate *this)
+{
+ /*FIXME stub*/
+ codecvt_base_dtor(&this->base);
+ TRACE("(%p)\n", this);
+}
+
+MSVCP_VECTOR_DTOR(codecvt_base)
+MSVCP_VECTOR_DTOR(codecvt_short_char_mbstate)
+MSVCP_VECTOR_DTOR(codecvt_char_char_mbstate)
+MSVCP_VECTOR_DTOR(codecvt_wchar_char_mbstate)
+
/* ?id@?$collate at D@std@@2V0locale at 2@A */
locale_id collate_char_id = {0};
@@ -4216,6 +4570,10 @@ basic_string_char* __thiscall locale_name(const locale *this, basic_string_char
}
DEFINE_RTTI_DATA(locale_facet, 0, 0, NULL, NULL, NULL, ".?AVfacet at locale@std@@");
+DEFINE_RTTI_DATA(codecvt_base, 0, 1, &locale_facet_rtti_base_descriptor, NULL, NULL, ".?AV?$codecvt_base at std@@");
+DEFINE_RTTI_DATA(codecvt_char_char_mbstate, 0, 1, &locale_facet_rtti_base_descriptor, NULL, NULL, " ?AV?$codecvt at DDH@std@@");
+DEFINE_RTTI_DATA(codecvt_short_char_mbstate, 0, 1, &locale_facet_rtti_base_descriptor, NULL, NULL, " ?AV?$codecvt at GDH@std@@");
+DEFINE_RTTI_DATA(codecvt_wchar_char_mbstate, 0, 1, &locale_facet_rtti_base_descriptor, NULL, NULL, ".?AV?$codecvt at _WDH@std@@");
DEFINE_RTTI_DATA(collate_char, 0, 1, &locale_facet_rtti_base_descriptor, NULL, NULL, ".?AV?$collate at D@std@@");
DEFINE_RTTI_DATA(collate_wchar, 0, 1, &locale_facet_rtti_base_descriptor, NULL, NULL, ".?AV?$collate at _W@std@@");
DEFINE_RTTI_DATA(collate_short, 0, 1, &locale_facet_rtti_base_descriptor, NULL, NULL, ".?AV?$collate at G@std@@");
@@ -4234,6 +4592,10 @@ DEFINE_RTTI_DATA(num_get_short, 0, 1, &locale_facet_rtti_base_descriptor, NULL,
void __asm_dummy_vtables(void) {
#endif
__ASM_VTABLE(locale_facet, "");
+ __ASM_VTABLE(codecvt_base, ""/*FIXME*/);
+ __ASM_VTABLE(codecvt_char_char_mbstate, ""/*FIXME*/);
+ __ASM_VTABLE(codecvt_short_char_mbstate, ""/*FIXME*/);
+ __ASM_VTABLE(codecvt_wchar_char_mbstate, ""/*FIXME*/);
__ASM_VTABLE(collate_char,
VTABLE_ADD_FUNC(collate_char_do_compare)
VTABLE_ADD_FUNC(collate_char_do_transform)
diff --git a/dlls/msvcp90/msvcp90.h b/dlls/msvcp90/msvcp90.h
index 1b40b55..0dbd3f6 100644
--- a/dlls/msvcp90/msvcp90.h
+++ b/dlls/msvcp90/msvcp90.h
@@ -119,6 +119,24 @@ const rtti_object_locator name ## _rtti = { \
&name ## _hierarchy \
}
+#define MSVCP_VECTOR_DTOR(type) \
+DEFINE_THISCALL_WRAPPER(MSVCP_ ## type ## _vector_dtor, 8) \
+type* __thiscall MSVCP_ ## type ## _vector_dtor(type* this, unsigned int flags) \
+{ \
+ TRACE("(%p %x)\n", this, flags); \
+ if(flags & 2) { \
+ int i, *ptr = (int *)this-1; \
+ for(i=*ptr-1; i>=0; i--) \
+ type ## _dtor(this+i); \
+ MSVCRT_operator_delete(ptr); \
+ } else { \
+ type ## _dtor(this); \
+ if(flags & 1) \
+ MSVCRT_operator_delete(this); \
+ } \
+ return this; \
+}
+
#ifdef __i386__
#define CALL_VTBL_FUNC(this, off, ret, type, args) ((ret (WINAPI*)type)&vtbl_wrapper_##off)args
diff --git a/dlls/msvcp90/msvcp90.spec b/dlls/msvcp90/msvcp90.spec
index ff2f8c5..954afd5 100644
--- a/dlls/msvcp90/msvcp90.spec
+++ b/dlls/msvcp90/msvcp90.spec
@@ -834,20 +834,20 @@
@ stub -arch=win64 ??0?$basic_stringstream at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEAA at AEBV?$basic_string at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@1 at H@Z
@ stub -arch=win32 ??0?$basic_stringstream at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAE at H@Z
@ stub -arch=win64 ??0?$basic_stringstream at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEAA at H@Z
-@ stub -arch=win32 ??0?$codecvt at DDH@std@@QAE at ABV_Locinfo@1 at I@Z
-@ stub -arch=win64 ??0?$codecvt at DDH@std@@QEAA at AEBV_Locinfo@1 at _K@Z
-@ stub -arch=win32 ??0?$codecvt at DDH@std@@QAE at I@Z
-@ stub -arch=win64 ??0?$codecvt at DDH@std@@QEAA at _K@Z
-@ stub -arch=win32 ??0?$codecvt at GDH@std@@IAE at PBDI@Z
-@ stub -arch=win64 ??0?$codecvt at GDH@std@@IEAA at PEBD_K@Z
-@ stub -arch=win32 ??0?$codecvt at GDH@std@@QAE at ABV_Locinfo@1 at I@Z
-@ stub -arch=win64 ??0?$codecvt at GDH@std@@QEAA at AEBV_Locinfo@1 at _K@Z
-@ stub -arch=win32 ??0?$codecvt at GDH@std@@QAE at I@Z
-@ stub -arch=win64 ??0?$codecvt at GDH@std@@QEAA at _K@Z
-@ stub -arch=win32 ??0?$codecvt at _WDH@std@@QAE at ABV_Locinfo@1 at I@Z
-@ stub -arch=win64 ??0?$codecvt at _WDH@std@@QEAA at AEBV_Locinfo@1 at _K@Z
-@ stub -arch=win32 ??0?$codecvt at _WDH@std@@QAE at I@Z
-@ stub -arch=win64 ??0?$codecvt at _WDH@std@@QEAA at _K@Z
+@ thiscall -arch=win32 ??0?$codecvt at DDH@std@@QAE at ABV_Locinfo@1 at I@Z(ptr ptr long) codecvt_char_char_mbstate_ctor_locinfo
+@ cdecl -arch=win64 ??0?$codecvt at DDH@std@@QEAA at AEBV_Locinfo@1 at _K@Z(ptr ptr long) codecvt_char_char_mbstate_ctor_locinfo
+@ thiscall -arch=win32 ??0?$codecvt at DDH@std@@QAE at I@Z(ptr long) codecvt_char_char_mbstate_ctor_refs
+@ cdecl -arch=win64 ??0?$codecvt at DDH@std@@QEAA at _K@Z(ptr long) codecvt_char_char_mbstate_ctor_refs
+@ thiscall -arch=win32 ??0?$codecvt at GDH@std@@IAE at PBDI@Z(ptr ptr long) codecvt_short_char_mbstate_ctor_name
+@ cdecl -arch=win64 ??0?$codecvt at GDH@std@@IEAA at PEBD_K@Z(ptr ptr long) codecvt_short_char_mbstate_ctor_name
+@ thiscall -arch=win32 ??0?$codecvt at GDH@std@@QAE at ABV_Locinfo@1 at I@Z(ptr ptr long) codecvt_short_char_mbstate_ctor_locinfo
+@ cdecl -arch=win64 ??0?$codecvt at GDH@std@@QEAA at AEBV_Locinfo@1 at _K@Z(ptr ptr long) codecvt_short_char_mbstate_ctor_locinfo
+@ thiscall -arch=win32 ??0?$codecvt at GDH@std@@QAE at I@Z(ptr long) codecvt_short_char_mbstate_ctor_refs
+@ cdecl -arch=win64 ??0?$codecvt at GDH@std@@QEAA at _K@Z(ptr long) codecvt_short_char_mbstate_ctor_refs
+@ thiscall -arch=win32 ??0?$codecvt at _WDH@std@@QAE at ABV_Locinfo@1 at I@Z(ptr ptr long) codecvt_wchar_char_mbstate_ctor_locinfo
+@ cdecl -arch=win64 ??0?$codecvt at _WDH@std@@QEAA at AEBV_Locinfo@1 at _K@Z(ptr ptr long) codecvt_wchar_char_mbstate_ctor_locinfo
+@ thiscall -arch=win32 ??0?$codecvt at _WDH@std@@QAE at I@Z(ptr long) codecvt_wchar_char_mbstate_ctor_refs
+@ cdecl -arch=win64 ??0?$codecvt at _WDH@std@@QEAA at _K@Z(ptr long) codecvt_wchar_char_mbstate_ctor_refs
@ thiscall -arch=win32 ??0?$collate at D@std@@IAE at PBDI@Z(ptr str long) collate_char_ctor_name
@ cdecl -arch=win64 ??0?$collate at D@std@@IEAA at PEBD_K@Z(ptr str long) collate_char_ctor_name
@ thiscall -arch=win32 ??0?$collate at D@std@@QAE at ABV_Locinfo@1 at I@Z(ptr ptr long) collate_char_ctor_locinfo
@@ -1092,8 +1092,8 @@
@ stub -arch=win64 ??0_UShinit at std@@QEAA at XZ
@ stub -arch=win32 ??0_Winit at std@@QAE at XZ
@ stub -arch=win64 ??0_Winit at std@@QEAA at XZ
-@ stub -arch=win32 ??0codecvt_base at std@@QAE at I@Z
-@ stub -arch=win64 ??0codecvt_base at std@@QEAA at _K@Z
+@ thiscall -arch=win32 ??0codecvt_base at std@@QAE at I@Z(ptr long) codecvt_base_ctor_refs
+@ cdecl -arch=win64 ??0codecvt_base at std@@QEAA at _K@Z(ptr long) codecvt_base_ctor_refs
@ thiscall -arch=win32 ??0ctype_base at std@@QAE at I@Z(ptr long) ctype_base_ctor_refs
@ cdecl -arch=win64 ??0ctype_base at std@@QEAA at _K@Z(ptr long) ctype_base_ctor_refs
@ thiscall -arch=win32 ??0facet at locale@std@@IAE at I@Z(ptr long) locale_facet_ctor_refs
@@ -1230,12 +1230,12 @@
@ stub -arch=win64 ??1?$basic_stringstream at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@UEAA at XZ
@ stub -arch=win32 ??1?$basic_stringstream at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@UAE at XZ
@ stub -arch=win64 ??1?$basic_stringstream at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@UEAA at XZ
-@ stub -arch=win32 ??1?$codecvt at DDH@std@@MAE at XZ
-@ stub -arch=win64 ??1?$codecvt at DDH@std@@MEAA at XZ
-@ stub -arch=win32 ??1?$codecvt at GDH@std@@MAE at XZ
-@ stub -arch=win64 ??1?$codecvt at GDH@std@@MEAA at XZ
-@ stub -arch=win32 ??1?$codecvt at _WDH@std@@MAE at XZ
-@ stub -arch=win64 ??1?$codecvt at _WDH@std@@MEAA at XZ
+@ thiscall -arch=win32 ??1?$codecvt at DDH@std@@MAE at XZ(ptr) codecvt_char_char_mbstate_dtor
+@ cdecl -arch=win64 ??1?$codecvt at DDH@std@@MEAA at XZ(ptr) codecvt_char_char_mbstate_dtor
+@ thiscall -arch=win32 ??1?$codecvt at GDH@std@@MAE at XZ(ptr) codecvt_short_char_mbstate_dtor
+@ cdecl -arch=win64 ??1?$codecvt at GDH@std@@MEAA at XZ(ptr) codecvt_short_char_mbstate_dtor
+@ thiscall -arch=win32 ??1?$codecvt at _WDH@std@@MAE at XZ(ptr) codecvt_wchar_char_mbstate_dtor
+@ cdecl -arch=win64 ??1?$codecvt at _WDH@std@@MEAA at XZ(ptr) codecvt_wchar_char_mbstate_dtor
@ thiscall -arch=win32 ??1?$collate at D@std@@MAE at XZ(ptr) collate_char_dtor
@ cdecl -arch=win64 ??1?$collate at D@std@@MEAA at XZ(ptr) collate_char_dtor
@ thiscall -arch=win32 ??1?$collate at G@std@@MAE at XZ(ptr) collate_wchar_dtor
@@ -1326,8 +1326,8 @@
@ stub -arch=win64 ??1_UShinit at std@@QEAA at XZ
@ stub -arch=win32 ??1_Winit at std@@QAE at XZ
@ stub -arch=win64 ??1_Winit at std@@QEAA at XZ
-@ stub -arch=win32 ??1codecvt_base at std@@UAE at XZ
-@ stub -arch=win64 ??1codecvt_base at std@@UEAA at XZ
+@ thiscall -arch=win32 ??1codecvt_base at std@@UAE at XZ(ptr) codecvt_base_dtor
+@ cdecl -arch=win64 ??1codecvt_base at std@@UEAA at XZ(ptr) codecvt_base_dtor
@ thiscall -arch=win32 ??1ctype_base at std@@UAE at XZ(ptr) ctype_base_dtor
@ cdecl -arch=win64 ??1ctype_base at std@@UEAA at XZ(ptr) ctype_base_dtor
@ thiscall -arch=win32 ??1facet at locale@std@@UAE at XZ(ptr) locale_facet_dtor
@@ -1818,9 +1818,9 @@
# extern ??_7?$basic_stringstream at DU?$char_traits at D@std@@V?$allocator at D@2@@std@@6B@
# extern ??_7?$basic_stringstream at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@6B@
# extern ??_7?$basic_stringstream at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@6B@
-# extern ??_7?$codecvt at DDH@std@@6B@
-# extern ??_7?$codecvt at GDH@std@@6B@
-# extern ??_7?$codecvt at _WDH@std@@6B@
+@ extern ??_7?$codecvt at DDH@std@@6B@ MSVCP_codecvt_char_char_mbstate_vtable
+@ extern ??_7?$codecvt at GDH@std@@6B@ MSVCP_codecvt_short_char_mbstate_vtable
+@ extern ??_7?$codecvt at _WDH@std@@6B@ MSVCP_codecvt_wchar_char_mbstate_vtable
@ extern ??_7?$collate at D@std@@6B@ MSVCP_collate_char_vtable
@ extern ??_7?$collate at G@std@@6B@ MSVCP_collate_short_vtable
@ extern ??_7?$collate at _W@std@@6B@ MSVCP_collate_wchar_vtable
@@ -1858,7 +1858,7 @@
# extern ??_7?$time_put at GV?$ostreambuf_iterator at GU?$char_traits at G@std@@@std@@@std@@6B@
# extern ??_7?$time_put at _WV?$ostreambuf_iterator at _WU?$char_traits at _W@std@@@std@@@std@@6B@
@ extern ??_7_Locimp at locale@std@@6B@ MSVCP_locale__Locimp_vtable
-# extern ??_7codecvt_base at std@@6B@
+@ extern ??_7codecvt_base at std@@6B@ MSVCP_codecvt_base_vtable
@ extern ??_7ctype_base at std@@6B@ MSVCP_ctype_base_vtable
@ extern ??_7ios_base at std@@6B@ MSVCP_ios_base_vtable
# extern ??_7messages_base at std@@6B@
@@ -1991,12 +1991,12 @@
@ stub -arch=win64 ??_F?$basic_stringstream at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@QEAAXXZ
@ stub -arch=win32 ??_F?$basic_stringstream at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QAEXXZ
@ stub -arch=win64 ??_F?$basic_stringstream at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@QEAAXXZ
-@ stub -arch=win32 ??_F?$codecvt at DDH@std@@QAEXXZ
-@ stub -arch=win64 ??_F?$codecvt at DDH@std@@QEAAXXZ
-@ stub -arch=win32 ??_F?$codecvt at GDH@std@@QAEXXZ
-@ stub -arch=win64 ??_F?$codecvt at GDH@std@@QEAAXXZ
-@ stub -arch=win32 ??_F?$codecvt at _WDH@std@@QAEXXZ
-@ stub -arch=win64 ??_F?$codecvt at _WDH@std@@QEAAXXZ
+@ thiscall -arch=win32 ??_F?$codecvt at DDH@std@@QAEXXZ(ptr) codecvt_char_char_mbstate_ctor
+@ cdecl -arch=win64 ??_F?$codecvt at DDH@std@@QEAAXXZ(ptr) codecvt_char_char_mbstate_ctor
+@ thiscall -arch=win32 ??_F?$codecvt at GDH@std@@QAEXXZ(ptr) codecvt_short_char_mbstate_ctor
+@ cdecl -arch=win64 ??_F?$codecvt at GDH@std@@QEAAXXZ(ptr) codecvt_short_char_mbstate_ctor
+@ thiscall -arch=win32 ??_F?$codecvt at _WDH@std@@QAEXXZ(ptr) codecvt_wchar_char_mbstate_ctor
+@ cdecl -arch=win64 ??_F?$codecvt at _WDH@std@@QEAAXXZ(ptr) codecvt_wchar_char_mbstate_ctor
@ thiscall -arch=win32 ??_F?$collate at D@std@@QAEXXZ(ptr) collate_char_ctor
@ cdecl -arch=win64 ??_F?$collate at D@std@@QEAAXXZ(ptr) collate_char_ctor
@ thiscall -arch=win32 ??_F?$collate at G@std@@QAEXXZ(ptr) collate_short_ctor
@@ -2081,8 +2081,8 @@
@ cdecl -arch=win64 ??_F_Locinfo at std@@QEAAXXZ(ptr) _Locinfo_ctor
@ thiscall -arch=win32 ??_F_Timevec at std@@QAEXXZ(ptr) _Timevec_ctor
@ cdecl -arch=win64 ??_F_Timevec at std@@QEAAXXZ(ptr) _Timevec_ctor
-@ stub -arch=win32 ??_Fcodecvt_base at std@@QAEXXZ
-@ stub -arch=win64 ??_Fcodecvt_base at std@@QEAAXXZ
+@ thiscall -arch=win32 ??_Fcodecvt_base at std@@QAEXXZ(ptr) codecvt_base_ctor
+@ cdecl -arch=win64 ??_Fcodecvt_base at std@@QEAAXXZ(ptr) codecvt_base_ctor
@ thiscall -arch=win32 ??_Fctype_base at std@@QAEXXZ(ptr) ctype_base_ctor
@ cdecl -arch=win64 ??_Fctype_base at std@@QEAAXXZ(ptr) ctype_base_ctor
@ thiscall -arch=win32 ??_Ffacet at locale@std@@QAEXXZ(ptr) locale_facet_ctor
@@ -2221,12 +2221,12 @@
@ extern ?_Fpz at std@@3_JA std_Fpz
@ cdecl -arch=win32 ?_Fpz_func at std@@YAAA_JXZ() std_Fpz_func
@ cdecl -arch=win64 ?_Fpz_func at std@@YAAEA_JXZ() std_Fpz_func
-@ stub -arch=win32 ?_Getcat@?$codecvt at DDH@std@@SAIPAPBVfacet at locale@2 at PBV42@@Z
-@ stub -arch=win64 ?_Getcat@?$codecvt at DDH@std@@SA_KPEAPEBVfacet at locale@2 at PEBV42@@Z
-@ stub -arch=win32 ?_Getcat@?$codecvt at GDH@std@@SAIPAPBVfacet at locale@2 at PBV42@@Z
-@ stub -arch=win64 ?_Getcat@?$codecvt at GDH@std@@SA_KPEAPEBVfacet at locale@2 at PEBV42@@Z
-@ stub -arch=win32 ?_Getcat@?$codecvt at _WDH@std@@SAIPAPBVfacet at locale@2 at PBV42@@Z
-@ stub -arch=win64 ?_Getcat@?$codecvt at _WDH@std@@SA_KPEAPEBVfacet at locale@2 at PEBV42@@Z
+@ cdecl -arch=win32 ?_Getcat@?$codecvt at DDH@std@@SAIPAPBVfacet at locale@2 at PBV42@@Z(ptr ptr) codecvt_char_char_mbstate__Getcat
+@ cdecl -arch=win64 ?_Getcat@?$codecvt at DDH@std@@SA_KPEAPEBVfacet at locale@2 at PEBV42@@Z(ptr ptr) codecvt_char_char_mbstate__Getcat
+@ cdecl -arch=win32 ?_Getcat@?$codecvt at GDH@std@@SAIPAPBVfacet at locale@2 at PBV42@@Z(ptr ptr) codecvt_short_char_mbstate__Getcat
+@ cdecl -arch=win64 ?_Getcat@?$codecvt at GDH@std@@SA_KPEAPEBVfacet at locale@2 at PEBV42@@Z(ptr ptr) codecvt_short_char_mbstate__Getcat
+@ cdecl -arch=win32 ?_Getcat@?$codecvt at _WDH@std@@SAIPAPBVfacet at locale@2 at PBV42@@Z(ptr ptr) codecvt_wchar_char_mbstate__Getcat
+@ cdecl -arch=win64 ?_Getcat@?$codecvt at _WDH@std@@SA_KPEAPEBVfacet at locale@2 at PEBV42@@Z(ptr ptr) codecvt_wchar_char_mbstate__Getcat
@ cdecl -arch=win32 ?_Getcat@?$collate at D@std@@SAIPAPBVfacet at locale@2 at PBV42@@Z(ptr ptr) collate_char__Getcat
@ cdecl -arch=win64 ?_Getcat@?$collate at D@std@@SA_KPEAPEBVfacet at locale@2 at PEBV42@@Z(ptr ptr) collate_char__Getcat
@ cdecl -arch=win32 ?_Getcat@?$collate at G@std@@SAIPAPBVfacet at locale@2 at PBV42@@Z(ptr ptr) collate_short__Getcat
@@ -2404,10 +2404,10 @@
@ extern ?_Id_cnt at id@locale at std@@0HA locale_id__Id_cnt
@ cdecl -arch=win32 ?_Id_cnt_func at id@locale at std@@CAAAHXZ() locale_id__Id_cnt_func
@ cdecl -arch=win64 ?_Id_cnt_func at id@locale at std@@CAAEAHXZ() locale_id__Id_cnt_func
-@ stub -arch=win32 ?_Id_func@?$codecvt at GDH@std@@SAAAVid at locale@2 at XZ
-@ stub -arch=win64 ?_Id_func@?$codecvt at GDH@std@@SAAEAVid at locale@2 at XZ
-@ stub -arch=win32 ?_Id_func@?$codecvt at _WDH@std@@SAAAVid at locale@2 at XZ
-@ stub -arch=win64 ?_Id_func@?$codecvt at _WDH@std@@SAAEAVid at locale@2 at XZ
+@ cdecl -arch=win32 ?_Id_func@?$codecvt at GDH@std@@SAAAVid at locale@2 at XZ() codecvt_short_char_mbstate__Id_func
+@ cdecl -arch=win64 ?_Id_func@?$codecvt at GDH@std@@SAAEAVid at locale@2 at XZ() codecvt_short_char_mbstate__Id_func
+@ cdecl -arch=win32 ?_Id_func@?$codecvt at _WDH@std@@SAAAVid at locale@2 at XZ() codecvt_wchar_char_mbstate__Id_func
+@ cdecl -arch=win64 ?_Id_func@?$codecvt at _WDH@std@@SAAEAVid at locale@2 at XZ() codecvt_wchar_char_mbstate__Id_func
@ cdecl -arch=win32 ?_Id_func@?$ctype at D@std@@SAAAVid at locale@2 at XZ() ctype_char__Id_func
@ cdecl -arch=win64 ?_Id_func@?$ctype at D@std@@SAAEAVid at locale@2 at XZ() ctype_char__Id_func
@ cdecl -arch=win32 ?_Id_func@?$ctype at G@std@@SAAAVid at locale@2 at XZ() ctype_short__Id_func
@@ -2458,12 +2458,12 @@
@ stub -arch=win64 ?_Init@?$basic_stringbuf at GU?$char_traits at G@std@@V?$allocator at G@2@@std@@IEAAXPEBG_KH at Z
@ stub -arch=win32 ?_Init@?$basic_stringbuf at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@IAEXPB_WIH at Z
@ stub -arch=win64 ?_Init@?$basic_stringbuf at _WU?$char_traits at _W@std@@V?$allocator at _W@2@@std@@IEAAXPEB_W_KH at Z
-@ stub -arch=win32 ?_Init@?$codecvt at DDH@std@@IAEXABV_Locinfo at 2@@Z
-@ stub -arch=win64 ?_Init@?$codecvt at DDH@std@@IEAAXAEBV_Locinfo at 2@@Z
-@ stub -arch=win32 ?_Init@?$codecvt at GDH@std@@IAEXABV_Locinfo at 2@@Z
-@ stub -arch=win64 ?_Init@?$codecvt at GDH@std@@IEAAXAEBV_Locinfo at 2@@Z
-@ stub -arch=win32 ?_Init@?$codecvt at _WDH@std@@IAEXABV_Locinfo at 2@@Z
-@ stub -arch=win64 ?_Init@?$codecvt at _WDH@std@@IEAAXAEBV_Locinfo at 2@@Z
+@ thiscall -arch=win32 ?_Init@?$codecvt at DDH@std@@IAEXABV_Locinfo at 2@@Z(ptr ptr) codecvt_char_char_mbstate__Init
+@ cdecl -arch=win64 ?_Init@?$codecvt at DDH@std@@IEAAXAEBV_Locinfo at 2@@Z(ptr ptr) codecvt_char_char_mbstate__Init
+@ thiscall -arch=win32 ?_Init@?$codecvt at GDH@std@@IAEXABV_Locinfo at 2@@Z(ptr ptr) codecvt_short_char_mbstate__Init
+@ cdecl -arch=win64 ?_Init@?$codecvt at GDH@std@@IEAAXAEBV_Locinfo at 2@@Z(ptr ptr) codecvt_short_char_mbstate__Init
+@ thiscall -arch=win32 ?_Init@?$codecvt at _WDH@std@@IAEXABV_Locinfo at 2@@Z(ptr ptr) codecvt_wchar_char_mbstate__Init
+@ cdecl -arch=win64 ?_Init@?$codecvt at _WDH@std@@IEAAXAEBV_Locinfo at 2@@Z(ptr ptr) codecvt_wchar_char_mbstate__Init
@ thiscall -arch=win32 ?_Init@?$collate at D@std@@IAEXABV_Locinfo at 2@@Z(ptr ptr) collate_char__Init
@ cdecl -arch=win64 ?_Init@?$collate at D@std@@IEAAXAEBV_Locinfo at 2@@Z(ptr ptr) collate_char__Init
@ thiscall -arch=win32 ?_Init@?$collate at G@std@@IAEXABV_Locinfo at 2@@Z(ptr ptr) collate_wchar__Init
@@ -4193,9 +4193,9 @@
@ cdecl -arch=win64 ?hash@?$collate at G@std@@QEBAJPEBG0 at Z(ptr ptr ptr) collate_wchar_hash
@ thiscall -arch=win32 ?hash@?$collate at _W@std@@QBEJPB_W0 at Z(ptr ptr ptr) collate_wchar_hash
@ cdecl -arch=win64 ?hash@?$collate at _W@std@@QEBAJPEB_W0 at Z(ptr ptr ptr) collate_wchar_hash
-# extern ?id@?$codecvt at DDH@std@@2V0locale at 2@A
-# extern ?id@?$codecvt at GDH@std@@2V0locale at 2@A
-# extern ?id@?$codecvt at _WDH@std@@2V0locale at 2@A
+@ extern ?id@?$codecvt at DDH@std@@2V0locale at 2@A codecvt_char_char_mbstate_id
+@ extern ?id@?$codecvt at GDH@std@@2V0locale at 2@A codecvt_short_char_mbstate_id
+@ extern ?id@?$codecvt at _WDH@std@@2V0locale at 2@A codecvt_wchar_char_mbstate_id
@ extern ?id@?$collate at D@std@@2V0locale at 2@A collate_char_id
@ extern ?id@?$collate at G@std@@2V0locale at 2@A collate_short_id
@ extern ?id@?$collate at _W@std@@2V0locale at 2@A collate_wchar_id
--
1.7.9.5
More information about the wine-patches
mailing list