From: Gabriel Ivăncescu <gabrielopcode(a)gmail.com> Signed-off-by: Gabriel Ivăncescu <gabrielopcode(a)gmail.com> --- dlls/mshtml/htmlimg.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/dlls/mshtml/htmlimg.c b/dlls/mshtml/htmlimg.c index e0ade235c01..b34a05a9d0a 100644 --- a/dlls/mshtml/htmlimg.c +++ b/dlls/mshtml/htmlimg.c @@ -808,10 +808,8 @@ static ULONG WINAPI HTMLImageElementFactory_Release(IHTMLImageElementFactory *if TRACE("(%p) ref=%ld\n", This, ref); - if(!ref) { + if(!ref) release_dispex(&This->dispex); - free(This); - } return ref; } @@ -941,6 +939,16 @@ static inline HTMLImageElementFactory *impl_from_DispatchEx(DispatchEx *iface) return CONTAINING_RECORD(iface, HTMLImageElementFactory, dispex); } +static void HTMLImageElementFactory_unlink(DispatchEx *dispex) +{ +} + +static void HTMLImageElementFactory_destructor(DispatchEx *dispex) +{ + HTMLImageElementFactory *This = impl_from_DispatchEx(dispex); + free(This); +} + static HRESULT HTMLImageElementFactory_value(DispatchEx *dispex, LCID lcid, WORD flags, DISPPARAMS *params, VARIANT *res, EXCEPINFO *ei, IServiceProvider *caller) @@ -975,8 +983,8 @@ static const tid_t HTMLImageElementFactory_iface_tids[] = { }; static const dispex_static_data_vtbl_t HTMLImageElementFactory_dispex_vtbl = { - NULL, - NULL, + HTMLImageElementFactory_destructor, + HTMLImageElementFactory_unlink, HTMLImageElementFactory_value, NULL, NULL, -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/3408