From: Gabriel Ivăncescu <gabrielopcode(a)gmail.com> Signed-off-by: Gabriel Ivăncescu <gabrielopcode(a)gmail.com> --- dlls/mshtml/mutation.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/dlls/mshtml/mutation.c b/dlls/mshtml/mutation.c index e6d080cff16..3f544e0a90f 100644 --- a/dlls/mshtml/mutation.c +++ b/dlls/mshtml/mutation.c @@ -1303,10 +1303,8 @@ static ULONG WINAPI mutation_observer_ctor_Release(IUnknown *iface) TRACE("(%p) ref=%ld\n", This, ref); - if(!ref) { + if(!ref) release_dispex(&This->dispex); - free(This); - } return ref; } @@ -1317,6 +1315,12 @@ static const IUnknownVtbl mutation_observer_ctor_vtbl = { mutation_observer_ctor_Release, }; +static void mutation_observer_ctor_destructor(DispatchEx *dispex) +{ + struct mutation_observer_ctor *This = mutation_observer_ctor_from_DispatchEx(dispex); + free(This); +} + static HRESULT mutation_observer_ctor_value(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *params, VARIANT *res, EXCEPINFO *ei, IServiceProvider *caller) @@ -1365,7 +1369,9 @@ static HRESULT mutation_observer_ctor_value(DispatchEx *dispex, LCID lcid, } static dispex_static_data_vtbl_t mutation_observer_ctor_dispex_vtbl = { - .value = mutation_observer_ctor_value + mutation_observer_ctor_destructor, + NULL, + mutation_observer_ctor_value }; static const tid_t mutation_observer_ctor_iface_tids[] = { -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/3408