On 22.02.2016 19:31, Piotr Caban wrote:
/* ??4_Pad@std@@QAEAAV01@ABV01@@Z */ @@ -901,8 +907,12 @@ _Pad* __thiscall _Pad_ctor(_Pad *this) DEFINE_THISCALL_WRAPPER(_Pad_op_assign, 8) _Pad* __thiscall _Pad_op_assign(_Pad *this, const _Pad *copy) {
- FIXME("(%p %p) stub\n", this, copy);
- return NULL;
- TRACE("(%p %p)\n", this, copy);
- this->cnd = copy->cnd;
- this->mtx = copy->mtx;
- this->launched = copy->launched;
- return this;
}
The assignment of cnd and mtx looks a bit suspicious. Does that really work as expected (especially when the dtor is called later)?
On 22/02/16 20:38, Sebastian Lackner wrote:
On 22.02.2016 19:31, Piotr Caban wrote:
/* ??4_Pad@std@@QAEAAV01@ABV01@@Z */ @@ -901,8 +907,12 @@ _Pad* __thiscall _Pad_ctor(_Pad *this) DEFINE_THISCALL_WRAPPER(_Pad_op_assign, 8) _Pad* __thiscall _Pad_op_assign(_Pad *this, const _Pad *copy) {
- FIXME("(%p %p) stub\n", this, copy);
- return NULL;
- TRACE("(%p %p)\n", this, copy);
- this->cnd = copy->cnd;
- this->mtx = copy->mtx;
- this->launched = copy->launched;
- return this; }
The assignment of cnd and mtx looks a bit suspicious. Does that really work as expected (especially when the dtor is called later)?
Yes, it works as expected (_Pad::operator= and copy constructor seems to be broken in native). I'll send the patch with more tests.
Thanks, Piotr