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@PAVstreambuf@@@Z */ /* ??0ostream@@QEAA@PEAVstreambuf@@@Z */ +/* ??0ostream_withassign@@QAE@PAVstreambuf@@@Z */ +/* ??0ostream_withassign@@QEAA@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@PAVstreambuf@@@Z */ /* ??0ostream@@QEAA@PEAVstreambuf@@@Z */ +/* ??0ostream_withassign@@QAE@PAVstreambuf@@@Z */ +/* ??0ostream_withassign@@QEAA@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@PAVstreambuf@@@Z */ /* ??0ostream@@QEAA@PEAVstreambuf@@@Z */ +/* ??0ostream_withassign@@QAE@PAVstreambuf@@@Z */ +/* ??0ostream_withassign@@QEAA@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@PAVstreambuf@@@Z */ /* ??0ostream@@QEAA@PEAVstreambuf@@@Z */ +/* ??0ostream_withassign@@QAE@PAVstreambuf@@@Z */ +/* ??0ostream_withassign@@QEAA@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.