Gabriel Ivăncescu : mshtml: Use unlink and destructor in the vtbl for the MutationObserver constructor.
Module: wine Branch: master Commit: f937b89cd7b8ebd5e685fa5ea92c3dab66d2b07b URL: https://gitlab.winehq.org/wine/wine/-/commit/f937b89cd7b8ebd5e685fa5ea92c3da... Author: Gabriel Ivăncescu <gabrielopcode(a)gmail.com> Date: Tue Aug 1 19:45:25 2023 +0300 mshtml: Use unlink and destructor in the vtbl for the MutationObserver constructor. 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[] = {
participants (1)
-
Alexandre Julliard