msvcp90: Fix class functions invocation on 64bit systems.

This commit is contained in:
Piotr Caban 2011-12-29 12:44:39 +01:00 committed by Alexandre Julliard
parent fdddb60cdc
commit c4b8793996
4 changed files with 205 additions and 226 deletions

View File

@ -1094,40 +1094,40 @@ locale __thiscall basic_streambuf_char_pubimbue(basic_streambuf_char *this, cons
/* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JHH@Z */
/* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JHH@Z */
DEFINE_THISCALL_WRAPPER_RETPTR(basic_streambuf_char_pubseekoff, 16)
fpos_int __thiscall basic_streambuf_char_pubseekoff(basic_streambuf_char *this, streamoff off, int way, int mode)
DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff, 20)
fpos_int* __thiscall basic_streambuf_char_pubseekoff(basic_streambuf_char *this,
fpos_int *ret, streamoff off, int way, int mode)
{
fpos_int ret = { 0 }; /* FIXME */
FIXME("(%p %lu %d %d) stub\n", this, off, way, mode);
return ret;
}
/* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@JII@Z */
/* ?pubseekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@_JII@Z */
DEFINE_THISCALL_WRAPPER_RETPTR(basic_streambuf_char_pubseekoff_old, 16)
fpos_int __thiscall basic_streambuf_char_pubseekoff_old(basic_streambuf_char *this, streamoff off, unsigned int way, unsigned int mode)
DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekoff_old, 20)
fpos_int* __thiscall basic_streambuf_char_pubseekoff_old(basic_streambuf_char *this,
fpos_int *ret, streamoff off, unsigned int way, unsigned int mode)
{
fpos_int ret = { 0 }; /* FIXME */
FIXME("(%p %lu %d %d) stub\n", this, off, way, mode);
return ret;
}
/* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@H@Z */
/* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@H@Z */
DEFINE_THISCALL_WRAPPER_RETPTR(basic_streambuf_char_pubseekpos, 32)
fpos_int __thiscall basic_streambuf_char_pubseekpos(basic_streambuf_char *this, fpos_int pos, int mode)
DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos, 36)
fpos_int* __thiscall basic_streambuf_char_pubseekpos(basic_streambuf_char *this,
fpos_int *ret, fpos_int pos, int mode)
{
fpos_int ret = { 0 }; /* FIXME */
FIXME("(%p %s %d) stub\n", this, debugstr_fpos_int(&pos), mode);
return ret;
}
/* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@V32@I@Z */
/* ?pubseekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@V32@I@Z */
DEFINE_THISCALL_WRAPPER_RETPTR(basic_streambuf_char_pubseekpos_old, 32)
fpos_int __thiscall basic_streambuf_char_pubseekpos_old(basic_streambuf_char *this, fpos_int pos, unsigned int mode)
DEFINE_THISCALL_WRAPPER(basic_streambuf_char_pubseekpos_old, 36)
fpos_int* __thiscall basic_streambuf_char_pubseekpos_old(basic_streambuf_char *this,
fpos_int *ret, fpos_int pos, unsigned int mode)
{
fpos_int ret = { 0 }; /* FIXME */
FIXME("(%p %s %d) stub\n", this, debugstr_fpos_int(&pos), mode);
return ret;
}
@ -1161,20 +1161,20 @@ int __thiscall basic_streambuf_char_sbumpc(basic_streambuf_char *this)
/* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@JHH@Z */
/* ?seekoff@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@_JHH@Z */
DEFINE_THISCALL_WRAPPER_RETPTR(basic_streambuf_char_seekoff, 16)
fpos_int __thiscall basic_streambuf_char_seekoff(basic_streambuf_char *this, streamoff off, int way, int mode)
DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekoff, 20)
fpos_int* __thiscall basic_streambuf_char_seekoff(basic_streambuf_char *this,
fpos_int *ret, streamoff off, int way, int mode)
{
fpos_int ret = { 0 }; /* FIXME */
FIXME("(%p %lu %d %d) stub\n", this, off, way, mode);
return ret;
}
/* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MAE?AV?$fpos@H@2@V32@H@Z */
/* ?seekpos@?$basic_streambuf@DU?$char_traits@D@std@@@std@@MEAA?AV?$fpos@H@2@V32@H@Z */
DEFINE_THISCALL_WRAPPER_RETPTR(basic_streambuf_char_seekpos, 32)
fpos_int __thiscall basic_streambuf_char_seekpos(basic_streambuf_char *this, fpos_int pos, int mode)
DEFINE_THISCALL_WRAPPER(basic_streambuf_char_seekpos, 36)
fpos_int* __thiscall basic_streambuf_char_seekpos(basic_streambuf_char *this,
fpos_int *ret, fpos_int pos, int mode)
{
fpos_int ret = { 0 }; /* FIXME */
FIXME("(%p %s %d) stub\n", this, debugstr_fpos_int(&pos), mode);
return ret;
}
@ -1574,10 +1574,9 @@ basic_ostream_char* __thiscall basic_ostream_char_seekp_fpos(basic_ostream_char
/* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE?AV?$fpos@H@2@XZ */
/* ?tellp@?$basic_ostream@DU?$char_traits@D@std@@@std@@QEAA?AV?$fpos@H@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(basic_ostream_char_tellp, 4)
fpos_int __thiscall basic_ostream_char_tellp(basic_ostream_char *this)
DEFINE_THISCALL_WRAPPER(basic_ostream_char_tellp, 8)
fpos_int* __thiscall basic_ostream_char_tellp(basic_ostream_char *this, fpos_int *ret)
{
fpos_int ret = { 0 }; /* FIXME */
FIXME("(%p) stub\n", this);
return ret;
}

View File

@ -487,10 +487,11 @@ _Collvec __cdecl _Getcoll(void)
/* ?_Getcoll@_Locinfo@std@@QBE?AU_Collvec@@XZ */
/* ?_Getcoll@_Locinfo@std@@QEBA?AU_Collvec@@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(_Locinfo__Getcoll, 4)
_Collvec __thiscall _Locinfo__Getcoll(const _Locinfo *this)
DEFINE_THISCALL_WRAPPER(_Locinfo__Getcoll, 8)
_Collvec* __thiscall _Locinfo__Getcoll(const _Locinfo *this, _Collvec *ret)
{
return _Getcoll();
*ret = _Getcoll();
return ret;
}
/* _Getctype */
@ -518,10 +519,11 @@ _Ctypevec __cdecl _Getctype(void)
/* ?_Getctype@_Locinfo@std@@QBE?AU_Ctypevec@@XZ */
/* ?_Getctype@_Locinfo@std@@QEBA?AU_Ctypevec@@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(_Locinfo__Getctype, 4)
_Ctypevec __thiscall _Locinfo__Getctype(const _Locinfo *this)
DEFINE_THISCALL_WRAPPER(_Locinfo__Getctype, 8)
_Ctypevec* __thiscall _Locinfo__Getctype(const _Locinfo *this, _Ctypevec *ret)
{
return _Getctype();
*ret = _Getctype();
return ret;
}
/* _Getcvt */
@ -540,10 +542,11 @@ _Cvtvec __cdecl _Getcvt(void)
/* ?_Getcvt@_Locinfo@std@@QBE?AU_Cvtvec@@XZ */
/* ?_Getcvt@_Locinfo@std@@QEBA?AU_Cvtvec@@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(_Locinfo__Getcvt, 4)
_Cvtvec __thiscall _Locinfo__Getcvt(const _Locinfo *this)
DEFINE_THISCALL_WRAPPER(_Locinfo__Getcvt, 8)
_Cvtvec* __thiscall _Locinfo__Getcvt(const _Locinfo *this, _Cvtvec *ret)
{
return _Getcvt();
*ret = _Getcvt();
return ret;
}
/* ?_Getdateorder@_Locinfo@std@@QBEHXZ */
@ -623,27 +626,23 @@ const struct lconv* __thiscall _Locinfo__Getlconv(const _Locinfo *this)
/* ?_Getname@_Locinfo@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
/* ?_Getname@_Locinfo@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(_Locinfo__Getname, 4)
basic_string_char __thiscall _Locinfo__Getname(const _Locinfo *this)
DEFINE_THISCALL_WRAPPER(_Locinfo__Getname, 8)
basic_string_char* __thiscall _Locinfo__Getname(const _Locinfo *this, basic_string_char *ret)
{
basic_string_char ret;
TRACE("(%p)\n", this);
MSVCP_basic_string_char_copy_ctor(&ret, &this->newlocname);
MSVCP_basic_string_char_copy_ctor(ret, &this->newlocname);
return ret;
}
/* ?_Gettnames@_Locinfo@std@@QBE?AV_Timevec@2@XZ */
/* ?_Gettnames@_Locinfo@std@@QEBA?AV_Timevec@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(_Locinfo__Gettnames, 4)
_Timevec __thiscall _Locinfo__Gettnames(const _Locinfo *this)
DEFINE_THISCALL_WRAPPER(_Locinfo__Gettnames, 8)
_Timevec*__thiscall _Locinfo__Gettnames(const _Locinfo *this, _Timevec *ret)
{
_Timevec ret;
TRACE("(%p)\n", this);
_Timevec_ctor_timeptr(&ret, _Gettnames());
_Timevec_ctor_timeptr(ret, _Gettnames());
return ret;
}
@ -665,7 +664,7 @@ DEFINE_THISCALL_WRAPPER(collate_char__Init, 8)
void __thiscall collate_char__Init(collate *this, const _Locinfo *locinfo)
{
TRACE("(%p %p)\n", this, locinfo);
this->coll = _Locinfo__Getcoll(locinfo);
_Locinfo__Getcoll(locinfo, &this->coll);
}
/* ??0?$collate@D@std@@IAE@PBDI@Z */
@ -830,22 +829,20 @@ LONG __thiscall collate_char_hash(const collate *this,
/* ?do_transform@?$collate@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PBD0@Z */
/* ?do_transform@?$collate@D@std@@MEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PEBD0@Z */
DEFINE_THISCALL_WRAPPER_RETPTR(collate_char_do_transform, 12)
basic_string_char __thiscall collate_char_do_transform(const collate *this,
const char *first, const char *last)
DEFINE_THISCALL_WRAPPER(collate_char_do_transform, 16)
basic_string_char* __thiscall collate_char_do_transform(const collate *this,
basic_string_char *ret, const char *first, const char *last)
{
basic_string_char ret = {0}; /* FIXME */
FIXME("(%p %p %p) stub\n", this, first, last);
return ret;
}
/* ?transform@?$collate@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PBD0@Z */
/* ?transform@?$collate@D@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@PEBD0@Z */
DEFINE_THISCALL_WRAPPER_RETPTR(collate_char_transform, 12)
basic_string_char __thiscall collate_char_transform(const collate *this,
const char *first, const char *last)
DEFINE_THISCALL_WRAPPER(collate_char_transform, 16)
basic_string_char* __thiscall collate_char_transform(const collate *this,
basic_string_char *ret, const char *first, const char *last)
{
basic_string_char ret = {0}; /* FIXME */
FIXME("(%p %p %p) stub\n", this, first, last);
return ret;
}
@ -868,7 +865,7 @@ DEFINE_THISCALL_WRAPPER(collate_wchar__Init, 8)
void __thiscall collate_wchar__Init(collate *this, const _Locinfo *locinfo)
{
TRACE("(%p %p)\n", this, locinfo);
this->coll = _Locinfo__Getcoll(locinfo);
_Locinfo__Getcoll(locinfo, &this->coll);
}
/* ??0?$collate@_W@std@@IAE@PBDI@Z */
@ -1103,11 +1100,10 @@ LONG __thiscall collate_wchar_hash(const collate *this,
/* ?do_transform@?$collate@_W@std@@MEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PEB_W0@Z */
/* ?do_transform@?$collate@G@std@@MBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@PBG0@Z */
/* ?do_transform@?$collate@G@std@@MEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@PEBG0@Z */
DEFINE_THISCALL_WRAPPER_RETPTR(collate_wchar_do_transform, 12)
basic_string_wchar __thiscall collate_wchar_do_transform(const collate *this,
const wchar_t *first, const wchar_t *last)
DEFINE_THISCALL_WRAPPER(collate_wchar_do_transform, 16)
basic_string_wchar* __thiscall collate_wchar_do_transform(const collate *this,
basic_string_wchar *ret, const wchar_t *first, const wchar_t *last)
{
basic_string_wchar ret = {0}; /* FIXME */
FIXME("(%p %p %p) stub\n", this, first, last);
return ret;
}
@ -1116,11 +1112,10 @@ basic_string_wchar __thiscall collate_wchar_do_transform(const collate *this,
/* ?transform@?$collate@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@PEB_W0@Z */
/* ?transform@?$collate@G@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@PBG0@Z */
/* ?transform@?$collate@G@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@PEBG0@Z */
DEFINE_THISCALL_WRAPPER_RETPTR(collate_wchar_transform, 12)
basic_string_wchar __thiscall collate_wchar_transform(const collate *this,
const wchar_t *first, const wchar_t *last)
DEFINE_THISCALL_WRAPPER(collate_wchar_transform, 16)
basic_string_wchar* __thiscall collate_wchar_transform(const collate *this,
basic_string_wchar *ret, const wchar_t *first, const wchar_t *last)
{
basic_string_wchar ret = {0}; /* FIXME */
FIXME("(%p %p %p) stub\n", this, first, last);
return ret;
}
@ -1207,7 +1202,7 @@ DEFINE_THISCALL_WRAPPER(ctype_char__Init, 8)
void __thiscall ctype_char__Init(ctype_char *this, _Locinfo *locinfo)
{
TRACE("(%p %p)\n", this, locinfo);
this->ctype = _Locinfo__Getctype(locinfo);
_Locinfo__Getctype(locinfo, &this->ctype);
}
/* ?_Tidy@?$ctype@D@std@@IAEXXZ */
@ -1724,8 +1719,8 @@ DEFINE_THISCALL_WRAPPER(ctype_wchar__Init, 8)
void __thiscall ctype_wchar__Init(ctype_wchar *this, _Locinfo *locinfo)
{
TRACE("(%p %p)\n", this, locinfo);
this->ctype = _Locinfo__Getctype(locinfo);
this->cvt = _Locinfo__Getcvt(locinfo);
_Locinfo__Getctype(locinfo, &this->ctype);
_Locinfo__Getcvt(locinfo, &this->cvt);
}
/* ??0?$ctype@_W@std@@QAE@ABV_Locinfo@1@I@Z */
@ -2568,60 +2563,54 @@ char __thiscall numpunct_char_thousands_sep(const numpunct_char *this)
/* ?do_grouping@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
/* ?do_grouping@?$numpunct@D@std@@MEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(numpunct_char_do_grouping, 4)
basic_string_char __thiscall numpunct_char_do_grouping(const numpunct_char *this)
DEFINE_THISCALL_WRAPPER(numpunct_char_do_grouping, 8)
basic_string_char* __thiscall numpunct_char_do_grouping(const numpunct_char *this, basic_string_char *ret)
{
basic_string_char ret = {0};
FIXME("(%p) stub\n", this);
return ret;
}
/* ?grouping@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
/* ?grouping@?$numpunct@D@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(numpunct_char_grouping, 4)
basic_string_char __thiscall numpunct_char_grouping(const numpunct_char *this)
DEFINE_THISCALL_WRAPPER(numpunct_char_grouping, 8)
basic_string_char* __thiscall numpunct_char_grouping(const numpunct_char *this, basic_string_char *ret)
{
basic_string_char ret = {0};
FIXME("(%p) stub\n", this);
return ret;
}
/* ?do_falsename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
/* ?do_falsename@?$numpunct@D@std@@MEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(numpunct_char_do_falsename, 4)
basic_string_char __thiscall numpunct_char_do_falsename(const numpunct_char *this)
DEFINE_THISCALL_WRAPPER(numpunct_char_do_falsename, 8)
basic_string_char* __thiscall numpunct_char_do_falsename(const numpunct_char *this, basic_string_char *ret)
{
basic_string_char ret = {0};
FIXME("(%p) stub\n", this);
return ret;
}
/* ?falsename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
/* ?falsename@?$numpunct@D@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(numpunct_char_falsename, 4)
basic_string_char __thiscall numpunct_char_falsename(const numpunct_char *this)
DEFINE_THISCALL_WRAPPER(numpunct_char_falsename, 8)
basic_string_char* __thiscall numpunct_char_falsename(const numpunct_char *this, basic_string_char *ret)
{
basic_string_char ret = {0};
FIXME("(%p) stub\n", this);
return ret;
}
/* ?do_truename@?$numpunct@D@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
/* ?do_truename@?$numpunct@D@std@@MEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(numpunct_char_do_truename, 4)
basic_string_char __thiscall numpunct_char_do_truename(const numpunct_char *this)
DEFINE_THISCALL_WRAPPER(numpunct_char_do_truename, 8)
basic_string_char* __thiscall numpunct_char_do_truename(const numpunct_char *this, basic_string_char *ret)
{
basic_string_char ret = {0};
FIXME("(%p) stub\n", this);
return ret;
}
/* ?truename@?$numpunct@D@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
/* ?truename@?$numpunct@D@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(numpunct_char_truename, 4)
basic_string_char __thiscall numpunct_char_truename(const numpunct_char *this)
DEFINE_THISCALL_WRAPPER(numpunct_char_truename, 8)
basic_string_char* __thiscall numpunct_char_truename(const numpunct_char *this, basic_string_char *ret)
{
basic_string_char ret = {0};
FIXME("(%p) stub\n", this);
return ret;
}
@ -2836,10 +2825,9 @@ wchar_t __thiscall numpunct_wchar_thousands_sep(const numpunct_wchar *this)
/* ?do_grouping@?$numpunct@_W@std@@MEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
/* ?do_grouping@?$numpunct@G@std@@MBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
/* ?do_grouping@?$numpunct@G@std@@MEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(numpunct_wchar_do_grouping, 4)
basic_string_char __thiscall numpunct_wchar_do_grouping(const numpunct_wchar *this)
DEFINE_THISCALL_WRAPPER(numpunct_wchar_do_grouping, 8)
basic_string_char* __thiscall numpunct_wchar_do_grouping(const numpunct_wchar *this, basic_string_char *ret)
{
basic_string_char ret = {0};
FIXME("(%p) stub\n", this);
return ret;
}
@ -2848,10 +2836,9 @@ basic_string_char __thiscall numpunct_wchar_do_grouping(const numpunct_wchar *th
/* ?grouping@?$numpunct@_W@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
/* ?grouping@?$numpunct@G@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
/* ?grouping@?$numpunct@G@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(numpunct_wchar_grouping, 4)
basic_string_char __thiscall numpunct_wchar_grouping(const numpunct_wchar *this)
DEFINE_THISCALL_WRAPPER(numpunct_wchar_grouping, 8)
basic_string_char* __thiscall numpunct_wchar_grouping(const numpunct_wchar *this, basic_string_char *ret)
{
basic_string_char ret = {0};
FIXME("(%p) stub\n", this);
return ret;
}
@ -2860,10 +2847,9 @@ basic_string_char __thiscall numpunct_wchar_grouping(const numpunct_wchar *this)
/* ?do_falsename@?$numpunct@_W@std@@MEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
/* ?do_falsename@?$numpunct@G@std@@MBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
/* ?do_falsename@?$numpunct@G@std@@MEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(numpunct_wchar_do_falsename, 4)
basic_string_wchar __thiscall numpunct_wchar_do_falsename(const numpunct_wchar *this)
DEFINE_THISCALL_WRAPPER(numpunct_wchar_do_falsename, 8)
basic_string_wchar* __thiscall numpunct_wchar_do_falsename(const numpunct_wchar *this, basic_string_wchar *ret)
{
basic_string_wchar ret = {0};
FIXME("(%p) stub\n", this);
return ret;
}
@ -2872,10 +2858,9 @@ basic_string_wchar __thiscall numpunct_wchar_do_falsename(const numpunct_wchar *
/* ?falsename@?$numpunct@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
/* ?falsename@?$numpunct@G@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
/* ?falsename@?$numpunct@G@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(numpunct_wchar_falsename, 4)
basic_string_wchar __thiscall numpunct_wchar_falsename(const numpunct_wchar *this)
DEFINE_THISCALL_WRAPPER(numpunct_wchar_falsename, 8)
basic_string_wchar* __thiscall numpunct_wchar_falsename(const numpunct_wchar *this, basic_string_wchar *ret)
{
basic_string_wchar ret = {0};
FIXME("(%p) stub\n", this);
return ret;
}
@ -2884,10 +2869,9 @@ basic_string_wchar __thiscall numpunct_wchar_falsename(const numpunct_wchar *thi
/* ?do_truename@?$numpunct@_W@std@@MEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
/* ?do_truename@?$numpunct@G@std@@MBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
/* ?do_truename@?$numpunct@G@std@@MEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(numpunct_wchar_do_truename, 4)
basic_string_wchar __thiscall numpunct_wchar_do_truename(const numpunct_wchar *this)
DEFINE_THISCALL_WRAPPER(numpunct_wchar_do_truename, 8)
basic_string_wchar* __thiscall numpunct_wchar_do_truename(const numpunct_wchar *this, basic_string_wchar *ret)
{
basic_string_wchar ret = {0};
FIXME("(%p) stub\n", this);
return ret;
}
@ -2896,10 +2880,9 @@ basic_string_wchar __thiscall numpunct_wchar_do_truename(const numpunct_wchar *t
/* ?truename@?$numpunct@_W@std@@QEBA?AV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@XZ */
/* ?truename@?$numpunct@G@std@@QBE?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
/* ?truename@?$numpunct@G@std@@QEBA?AV?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(numpunct_wchar_truename, 4)
basic_string_wchar __thiscall numpunct_wchar_truename(const numpunct_wchar *this)
DEFINE_THISCALL_WRAPPER(numpunct_wchar_truename, 8)
basic_string_wchar* __thiscall numpunct_wchar_truename(const numpunct_wchar *this, basic_string_wchar *ret)
{
basic_string_wchar ret = {0};
FIXME("(%p) stub\n", this);
return ret;
}
@ -3301,11 +3284,12 @@ const locale* __cdecl locale_classic(void)
/* ?name@locale@std@@QBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
/* ?name@locale@std@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(locale_name, 4)
basic_string_char __thiscall locale_name(const locale *this)
DEFINE_THISCALL_WRAPPER(locale_name, 8)
basic_string_char* __thiscall locale_name(const locale *this, basic_string_char *ret)
{
TRACE( "(%p)\n", this);
return this->ptr->name;
MSVCP_basic_string_char_copy_ctor(ret, &this->ptr->name);
return ret;
}
static const rtti_base_descriptor locale_facet_rtti_base_descriptor = {

View File

@ -44,23 +44,12 @@ extern void* (__cdecl *MSVCRT_set_new_handler)(void*);
"pushl %ecx\n\t" \
"pushl %eax\n\t" \
"jmp " __ASM_NAME(#func) __ASM_STDCALL(args) )
#define DEFINE_THISCALL_WRAPPER_RETPTR(func,args) \
extern void THISCALL(func)(void); \
__ASM_GLOBAL_FUNC(__thiscall_ ## func, \
"popl %eax\n\t" \
"popl %edx\n\t" \
"pushl %ecx\n\t" \
"pushl %edx\n\t" \
"pushl %eax\n\t" \
"jmp " __ASM_NAME(#func) __ASM_STDCALL(args) )
#else /* __i386__ */
#define THISCALL(func) func
#define THISCALL_NAME(func) __ASM_NAME(#func)
#define __thiscall __cdecl
#define DEFINE_THISCALL_WRAPPER(func,args) /* nothing */
#define DEFINE_THISCALL_WRAPPER_RETPTR(func,args) /* nothing */
#endif /* __i386__ */

View File

@ -663,10 +663,9 @@ MSVCP_size_t __cdecl MSVCP_basic_string_char_Pdif(String_iterator_char i1, Strin
/* ?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$allocator@D@2@XZ */
/* ?get_allocator@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$allocator@D@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(basic_string_char_get_allocator, 4)
allocator __thiscall basic_string_char_get_allocator(const basic_string_char *this)
DEFINE_THISCALL_WRAPPER(basic_string_char_get_allocator, 8)
allocator* __thiscall basic_string_char_get_allocator(const basic_string_char *this, allocator *ret)
{
allocator ret = {0};
TRACE("%p\n", this);
return ret;
}
@ -697,34 +696,40 @@ basic_string_char* __thiscall MSVCP_basic_string_char_erase(
/* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z */
/* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@0@Z */
DEFINE_THISCALL_WRAPPER_RETPTR(basic_string_char_erase_iter_range, 20)
String_iterator_char __thiscall basic_string_char_erase_iter_range(basic_string_char *this,
String_iterator_char beg, String_iterator_char end)
DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter_range, 24)
String_iterator_char* __thiscall basic_string_char_erase_iter_range(basic_string_char *this,
String_iterator_char *ret, String_iterator_char beg, String_iterator_char end)
{
String_iterator_char iter = { this, basic_string_char_ptr(this) };
MSVCP_size_t off = MSVCP_basic_string_char_Pdif(beg, iter);
MSVCP_size_t off;
ret->bstr = this;
ret->pos = basic_string_char_ptr(this);
off = MSVCP_basic_string_char_Pdif(beg, *ret);
MSVCP_basic_string_char_erase(this, off, MSVCP_basic_string_char_Pdif(end, beg));
iter.bstr = this;
iter.pos = basic_string_char_ptr(this)+off;
return iter;
ret->bstr = this;
ret->pos = basic_string_char_ptr(this)+off;
return ret;
}
/* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
/* ?erase@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
DEFINE_THISCALL_WRAPPER_RETPTR(basic_string_char_erase_iter, 12)
String_iterator_char __thiscall basic_string_char_erase_iter(
basic_string_char *this, String_iterator_char pos)
DEFINE_THISCALL_WRAPPER(basic_string_char_erase_iter, 16)
String_iterator_char* __thiscall basic_string_char_erase_iter(basic_string_char *this,
String_iterator_char *ret, String_iterator_char pos)
{
String_iterator_char iter = { this, basic_string_char_ptr(this) };
MSVCP_size_t off = MSVCP_basic_string_char_Pdif(pos, iter);
MSVCP_size_t off;
ret->bstr = this;
ret->pos = basic_string_char_ptr(this);
off = MSVCP_basic_string_char_Pdif(pos, *ret);
MSVCP_basic_string_char_erase(this, off, 1);
iter.bstr = this;
iter.pos = basic_string_char_ptr(this)+off;
return iter;
ret->bstr = this;
ret->pos = basic_string_char_ptr(this)+off;
return ret;
}
/* ?assign@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEAAV12@ABV12@II@Z */
@ -1120,14 +1125,13 @@ void __thiscall MSVCP_basic_string_char_swap(basic_string_char *this, basic_stri
/* ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV12@II@Z */
/* ?substr@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV12@_K0@Z */
DEFINE_THISCALL_WRAPPER_RETPTR(MSVCP_basic_string_char_substr, 12)
basic_string_char __thiscall MSVCP_basic_string_char_substr(
basic_string_char *this, MSVCP_size_t off, MSVCP_size_t len)
DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_substr, 16)
basic_string_char* __thiscall MSVCP_basic_string_char_substr(basic_string_char *this,
basic_string_char *ret, MSVCP_size_t off, MSVCP_size_t len)
{
basic_string_char ret = { 0 };
TRACE("%p %lu %lu\n", this, off, len);
MSVCP_basic_string_char_ctor_substr(&ret, this, off, len);
MSVCP_basic_string_char_ctor_substr(ret, this, off, len);
return ret;
}
@ -2179,25 +2183,28 @@ void __thiscall basic_string_char_insert_iter_chn(basic_string_char *this,
/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@D@Z */
/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@D@Z */
DEFINE_THISCALL_WRAPPER_RETPTR(basic_string_char_insert_iter_ch, 16)
String_iterator_char __thiscall basic_string_char_insert_iter_ch(
basic_string_char *this, String_iterator_char where, char ch)
DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_ch, 20)
String_iterator_char* __thiscall basic_string_char_insert_iter_ch(basic_string_char *this,
String_iterator_char *ret, String_iterator_char where, char ch)
{
String_iterator_char iter = { this, basic_string_char_ptr(this) };
MSVCP_size_t off = MSVCP_basic_string_char_Pdif(where, iter);
MSVCP_size_t off;
ret->bstr = this;
ret->pos = basic_string_char_ptr(this);
off = MSVCP_basic_string_char_Pdif(where, *ret);
basic_string_char_insert_chn(this, off, 1, ch);
iter.pos = basic_string_char_ptr(this)+off;
return iter;
ret->pos = basic_string_char_ptr(this)+off;
return ret;
}
/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@@Z */
DEFINE_THISCALL_WRAPPER_RETPTR(basic_string_char_insert_iter_null, 12)
String_iterator_char __thiscall basic_string_char_insert_iter_null(
basic_string_char *this, String_iterator_char where)
DEFINE_THISCALL_WRAPPER(basic_string_char_insert_iter_null, 16)
String_iterator_char* __thiscall basic_string_char_insert_iter_null(basic_string_char *this,
String_iterator_char *ret, String_iterator_char where)
{
return basic_string_char_insert_iter_ch(this, where, 0);
return basic_string_char_insert_iter_ch(this, ret, where, 0);
}
/* ?insert@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAEXV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@00@Z */
@ -2253,15 +2260,14 @@ void __thiscall MSVCP_basic_string_char_clear(basic_string_char *this)
/* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
/* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
/* ?begin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(MSVCP_basic_string_char_begin, 4)
String_iterator_char __thiscall MSVCP_basic_string_char_begin(basic_string_char *this)
DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_begin, 8)
String_iterator_char* __thiscall MSVCP_basic_string_char_begin(
basic_string_char *this, String_iterator_char *ret)
{
String_iterator_char ret;
TRACE("%p\n", this);
ret.bstr = this;
ret.pos = basic_string_char_const_ptr(this);
ret->bstr = this;
ret->pos = basic_string_char_const_ptr(this);
return ret;
}
@ -2269,15 +2275,14 @@ String_iterator_char __thiscall MSVCP_basic_string_char_begin(basic_string_char
/* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
/* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
/* ?end@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(MSVCP_basic_string_char_end, 4)
String_iterator_char __thiscall MSVCP_basic_string_char_end(basic_string_char *this)
DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_end, 8)
String_iterator_char* __thiscall MSVCP_basic_string_char_end(
basic_string_char *this, String_iterator_char *ret)
{
String_iterator_char ret;
TRACE("%p\n", this);
ret.bstr = this;
ret.pos = basic_string_char_const_ptr(this)+this->size;
ret->bstr = this;
ret->pos = basic_string_char_const_ptr(this)+this->size;
return ret;
}
@ -2285,15 +2290,14 @@ String_iterator_char __thiscall MSVCP_basic_string_char_end(basic_string_char *t
/* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$reverse_iterator@V?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
/* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
/* ?rbegin@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$reverse_iterator@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(MSVCP_basic_string_char_rbegin, 4)
String_reverse_iterator_char __thiscall MSVCP_basic_string_char_rbegin(basic_string_char *this)
DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rbegin, 8)
String_reverse_iterator_char* __thiscall MSVCP_basic_string_char_rbegin(
basic_string_char *this, String_reverse_iterator_char *ret)
{
String_reverse_iterator_char ret;
TRACE("%p\n", this);
ret.bstr = this;
ret.pos = basic_string_char_const_ptr(this)+this->size;
ret->bstr = this;
ret->pos = basic_string_char_const_ptr(this)+this->size;
return ret;
}
@ -2301,15 +2305,14 @@ String_reverse_iterator_char __thiscall MSVCP_basic_string_char_rbegin(basic_str
/* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEAA?AV?$reverse_iterator@V?$_String_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
/* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBE?AV?$reverse_iterator@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
/* ?rend@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QEBA?AV?$reverse_iterator@V?$_String_const_iterator@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(MSVCP_basic_string_char_rend, 4)
String_reverse_iterator_char __thiscall MSVCP_basic_string_char_rend(basic_string_char *this)
DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_char_rend, 8)
String_reverse_iterator_char* __thiscall MSVCP_basic_string_char_rend(
basic_string_char *this, String_reverse_iterator_char *ret)
{
String_reverse_iterator_char ret;
TRACE("%p\n", this);
ret.bstr = this;
ret.pos = basic_string_char_const_ptr(this);
ret->bstr = this;
ret->pos = basic_string_char_const_ptr(this);
return ret;
}
@ -2507,36 +2510,42 @@ basic_string_wchar* __thiscall MSVCP_basic_string_wchar_erase(
/* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@0@Z */
/* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0@Z */
/* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@0@Z */
DEFINE_THISCALL_WRAPPER_RETPTR(basic_string_wchar_erase_iter_range, 20)
String_iterator_wchar __thiscall basic_string_wchar_erase_iter_range(basic_string_wchar *this,
String_iterator_wchar beg, String_iterator_wchar end)
DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter_range, 24)
String_iterator_wchar* __thiscall basic_string_wchar_erase_iter_range(basic_string_wchar *this,
String_iterator_wchar *ret, String_iterator_wchar beg, String_iterator_wchar end)
{
String_iterator_wchar iter = { this, basic_string_wchar_ptr(this) };
MSVCP_size_t off = MSVCP_basic_string_wchar_Pdif(beg, iter);
MSVCP_size_t off;
ret->bstr = this;
ret->pos = basic_string_wchar_ptr(this);
off = MSVCP_basic_string_wchar_Pdif(beg, *ret);
MSVCP_basic_string_wchar_erase(this, off, MSVCP_basic_string_wchar_Pdif(end, beg));
iter.bstr = this;
iter.pos = basic_string_wchar_ptr(this)+off;
return iter;
ret->bstr = this;
ret->pos = basic_string_wchar_ptr(this)+off;
return ret;
}
/* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
/* ?erase@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
/* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
/* ?erase@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
DEFINE_THISCALL_WRAPPER_RETPTR(basic_string_wchar_erase_iter, 12)
String_iterator_wchar __thiscall basic_string_wchar_erase_iter(
basic_string_wchar *this, String_iterator_wchar pos)
DEFINE_THISCALL_WRAPPER(basic_string_wchar_erase_iter, 16)
String_iterator_wchar* __thiscall basic_string_wchar_erase_iter(basic_string_wchar *this,
String_iterator_wchar *ret, String_iterator_wchar pos)
{
String_iterator_wchar iter = { this, basic_string_wchar_ptr(this) };
MSVCP_size_t off = MSVCP_basic_string_wchar_Pdif(pos, iter);
MSVCP_size_t off;
ret->bstr = this;
ret->pos = basic_string_wchar_ptr(this);
off = MSVCP_basic_string_wchar_Pdif(pos, *ret);
MSVCP_basic_string_wchar_erase(this, off, 1);
iter.bstr = this;
iter.pos = basic_string_wchar_ptr(this)+off;
return iter;
ret->bstr = this;
ret->pos = basic_string_wchar_ptr(this)+off;
return ret;
}
/* ?assign@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEAAV12@ABV12@II@Z */
@ -3006,14 +3015,13 @@ void __thiscall MSVCP_basic_string_wchar_swap(basic_string_wchar *this, basic_st
/* ?substr@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEBA?AV12@_K0@Z */
/* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV12@II@Z */
/* ?substr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV12@_K0@Z */
DEFINE_THISCALL_WRAPPER_RETPTR(MSVCP_basic_string_wchar_substr, 12)
basic_string_wchar __thiscall MSVCP_basic_string_wchar_substr(
basic_string_wchar *this, MSVCP_size_t off, MSVCP_size_t len)
DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_substr, 16)
basic_string_wchar* __thiscall MSVCP_basic_string_wchar_substr(basic_string_wchar *this,
basic_string_wchar *ret, MSVCP_size_t off, MSVCP_size_t len)
{
basic_string_wchar ret = { 0 };
TRACE("%p %lu %lu\n", this, off, len);
MSVCP_basic_string_wchar_ctor_substr(&ret, this, off, len);
MSVCP_basic_string_wchar_ctor_substr(ret, this, off, len);
return ret;
}
@ -4162,27 +4170,30 @@ void __thiscall basic_string_wchar_insert_iter_chn(basic_string_wchar *this,
/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@_W@Z */
/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@G@Z */
/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@G@Z */
DEFINE_THISCALL_WRAPPER_RETPTR(basic_string_wchar_insert_iter_ch, 16)
String_iterator_wchar __thiscall basic_string_wchar_insert_iter_ch(
basic_string_wchar *this, String_iterator_wchar where, wchar_t ch)
DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_ch, 20)
String_iterator_wchar* __thiscall basic_string_wchar_insert_iter_ch(basic_string_wchar *this,
String_iterator_wchar *ret, String_iterator_wchar where, wchar_t ch)
{
String_iterator_wchar iter = { this, basic_string_wchar_ptr(this) };
MSVCP_size_t off = MSVCP_basic_string_wchar_Pdif(where, iter);
MSVCP_size_t off;
ret->bstr = this;
ret->pos = basic_string_wchar_ptr(this);
off = MSVCP_basic_string_wchar_Pdif(where, *ret);
basic_string_wchar_insert_chn(this, off, 1, ch);
iter.pos = basic_string_wchar_ptr(this)+off;
return iter;
ret->pos = basic_string_wchar_ptr(this)+off;
return ret;
}
/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QEAA?AV?$_String_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@V?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@@Z */
/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAE?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
/* ?insert@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@@Z */
DEFINE_THISCALL_WRAPPER_RETPTR(basic_string_wchar_insert_iter_null, 12)
String_iterator_wchar __thiscall basic_string_wchar_insert_iter_null(
basic_string_wchar *this, String_iterator_wchar where)
DEFINE_THISCALL_WRAPPER(basic_string_wchar_insert_iter_null, 16)
String_iterator_wchar* __thiscall basic_string_wchar_insert_iter_null(basic_string_wchar *this,
String_iterator_wchar *ret, String_iterator_wchar where)
{
return basic_string_wchar_insert_iter_ch(this, where, 0);
return basic_string_wchar_insert_iter_ch(this, ret, where, 0);
}
/* ?insert@?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAEXV?$_String_const_iterator@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@2@00@Z */
@ -4336,15 +4347,14 @@ void __thiscall MSVCP_basic_string_wchar_clear(basic_string_wchar *this)
/* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
/* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
/* ?begin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(MSVCP_basic_string_wchar_begin, 4)
String_iterator_wchar __thiscall MSVCP_basic_string_wchar_begin(basic_string_wchar *this)
DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_begin, 8)
String_iterator_wchar* __thiscall MSVCP_basic_string_wchar_begin(
basic_string_wchar *this, String_iterator_wchar *ret)
{
String_iterator_wchar ret;
TRACE("%p\n", this);
ret.bstr = this;
ret.pos = basic_string_wchar_const_ptr(this);
ret->bstr = this;
ret->pos = basic_string_wchar_const_ptr(this);
return ret;
}
@ -4356,15 +4366,14 @@ String_iterator_wchar __thiscall MSVCP_basic_string_wchar_begin(basic_string_wch
/* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
/* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
/* ?end@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(MSVCP_basic_string_wchar_end, 4)
String_iterator_wchar __thiscall MSVCP_basic_string_wchar_end(basic_string_wchar *this)
DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_end, 8)
String_iterator_wchar* __thiscall MSVCP_basic_string_wchar_end(
basic_string_wchar *this, String_iterator_wchar *ret)
{
String_iterator_wchar ret;
TRACE("%p\n", this);
ret.bstr = this;
ret.pos = basic_string_wchar_const_ptr(this)+this->size;
ret->bstr = this;
ret->pos = basic_string_wchar_const_ptr(this)+this->size;
return ret;
}
@ -4376,15 +4385,14 @@ String_iterator_wchar __thiscall MSVCP_basic_string_wchar_end(basic_string_wchar
/* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$reverse_iterator@V?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
/* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
/* ?rbegin@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$reverse_iterator@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(MSVCP_basic_string_wchar_rbegin, 4)
String_reverse_iterator_wchar __thiscall MSVCP_basic_string_wchar_rbegin(basic_string_wchar *this)
DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rbegin, 8)
String_reverse_iterator_wchar* __thiscall MSVCP_basic_string_wchar_rbegin(
basic_string_wchar *this, String_reverse_iterator_wchar *ret)
{
String_reverse_iterator_wchar ret;
TRACE("%p\n", this);
ret.bstr = this;
ret.pos = basic_string_wchar_const_ptr(this)+this->size;
ret->bstr = this;
ret->pos = basic_string_wchar_const_ptr(this)+this->size;
return ret;
}
@ -4396,15 +4404,14 @@ String_reverse_iterator_wchar __thiscall MSVCP_basic_string_wchar_rbegin(basic_s
/* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEAA?AV?$reverse_iterator@V?$_String_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
/* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QBE?AV?$reverse_iterator@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
/* ?rend@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QEBA?AV?$reverse_iterator@V?$_String_const_iterator@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@@2@XZ */
DEFINE_THISCALL_WRAPPER_RETPTR(MSVCP_basic_string_wchar_rend, 4)
String_reverse_iterator_wchar __thiscall MSVCP_basic_string_wchar_rend(basic_string_wchar *this)
DEFINE_THISCALL_WRAPPER(MSVCP_basic_string_wchar_rend, 8)
String_reverse_iterator_wchar* __thiscall MSVCP_basic_string_wchar_rend(
basic_string_wchar *this, String_reverse_iterator_wchar *ret)
{
String_reverse_iterator_wchar ret;
TRACE("%p\n", this);
ret.bstr = this;
ret.pos = basic_string_wchar_const_ptr(this);
ret->bstr = this;
ret->pos = basic_string_wchar_const_ptr(this);
return ret;
}