Re: [1/6] msvcirt: Add a partial implementation of class ostream_withassign.
Hi Iván, On 08/05/16 13:12, Iván Matellanes wrote:
typedef struct _ostream { const int *vbtable; int unknown; -} ostream; +} ostream, ostream_withassign; I don't think you need ostream_withassign type. You can just use ostream since the structures are identical.
/* ??0ostream@@QAE(a)PAVstreambuf@@@Z */ /* ??0ostream@@QEAA(a)PEAVstreambuf@@@Z */ +/* ??0ostream_withassign@@QAE(a)PAVstreambuf@@@Z */ +/* ??0ostream_withassign@@QEAA(a)PEAVstreambuf@@@Z */ DEFINE_THISCALL_WRAPPER(ostream_sb_ctor, 12) Calling ostream equivalents is OK in most cases. In case of constructors ostream_withassing_vtable should be used.
Thanks, Piotr
On 05/08/16 12:22, Piotr Caban wrote:
/* ??0ostream@@QAE(a)PAVstreambuf@@@Z */ /* ??0ostream@@QEAA(a)PEAVstreambuf@@@Z */ +/* ??0ostream_withassign@@QAE(a)PAVstreambuf@@@Z */ +/* ??0ostream_withassign@@QEAA(a)PEAVstreambuf@@@Z */ DEFINE_THISCALL_WRAPPER(ostream_sb_ctor, 12) Calling ostream equivalents is OK in most cases. In case of constructors ostream_withassing_vtable should be used. And how will that vtable be different from ostream_vtable? Should I add an ostream_withassign_vector_dtor too?
On 08/05/16 13:44, Iván Matellanes wrote:
On 05/08/16 12:22, Piotr Caban wrote:
/* ??0ostream@@QAE(a)PAVstreambuf@@@Z */ /* ??0ostream@@QEAA(a)PEAVstreambuf@@@Z */ +/* ??0ostream_withassign@@QAE(a)PAVstreambuf@@@Z */ +/* ??0ostream_withassign@@QEAA(a)PEAVstreambuf@@@Z */ DEFINE_THISCALL_WRAPPER(ostream_sb_ctor, 12) Calling ostream equivalents is OK in most cases. In case of constructors ostream_withassing_vtable should be used. And how will that vtable be different from ostream_vtable? Should I add an ostream_withassign_vector_dtor too? The RTTI data is different (vtable[-1]). You don't have to add ostream_withassign_vector_dtor.
On 05/08/16 13:01, Piotr Caban wrote:
On 08/05/16 13:44, Iván Matellanes wrote:
On 05/08/16 12:22, Piotr Caban wrote:
/* ??0ostream@@QAE(a)PAVstreambuf@@@Z */ /* ??0ostream@@QEAA(a)PEAVstreambuf@@@Z */ +/* ??0ostream_withassign@@QAE(a)PAVstreambuf@@@Z */ +/* ??0ostream_withassign@@QEAA(a)PEAVstreambuf@@@Z */ DEFINE_THISCALL_WRAPPER(ostream_sb_ctor, 12) Calling ostream equivalents is OK in most cases. In case of constructors ostream_withassing_vtable should be used. And how will that vtable be different from ostream_vtable? Should I add an ostream_withassign_vector_dtor too? The RTTI data is different (vtable[-1]). You don't have to add ostream_withassign_vector_dtor. Thanks, I've sent a new patch series correcting this and a bug in ios_copy_ctor that I encountered.
participants (2)
-
Iván Matellanes -
Piotr Caban