7 Dec
2022
7 Dec
'22
6:39 p.m.
Nikolay Sivov (@nsivov) commented about dlls/vbscript/vbdisp.c:
if(pvarRes) V_VT(pvarRes) = VT_EMPTY;
- return invoke_vbdisp(This, id, wFlags, TRUE, pdp, pvarRes); + prev_caller = This->desc->ctx->vbcaller->caller; + This->desc->ctx->vbcaller->caller = pspCaller; + if(pspCaller) + IServiceProvider_AddRef(pspCaller); + + hres = invoke_vbdisp(This, id, wFlags, TRUE, pdp, pvarRes); + + This->desc->ctx->vbcaller->caller = prev_caller; + if(pspCaller) + IServiceProvider_Release(pspCaller); + return hres;
Why do you need to do addref/release? -- https://gitlab.winehq.org/wine/wine/-/merge_requests/1733#note_19045