mshtml: Use unlink and destructor in the vtbl for HTMLPluginsCollection.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
This commit is contained in:
Gabriel Ivăncescu 2023-08-03 15:56:13 +03:00 committed by Alexandre Julliard
parent d373377765
commit 679617179c

View file

@ -845,12 +845,8 @@ static ULONG WINAPI HTMLPluginsCollection_Release(IHTMLPluginsCollection *iface)
TRACE("(%p) ref=%ld\n", This, ref); TRACE("(%p) ref=%ld\n", This, ref);
if(!ref) { if(!ref)
if(This->navigator)
This->navigator->plugins = NULL;
release_dispex(&This->dispex); release_dispex(&This->dispex);
free(This);
}
return ref; return ref;
} }
@ -918,13 +914,38 @@ static const IHTMLPluginsCollectionVtbl HTMLPluginsCollectionVtbl = {
HTMLPluginsCollection_refresh HTMLPluginsCollection_refresh
}; };
static inline HTMLPluginsCollection *HTMLPluginsCollection_from_DispatchEx(DispatchEx *iface)
{
return CONTAINING_RECORD(iface, HTMLPluginsCollection, dispex);
}
static void HTMLPluginsCollection_unlink(DispatchEx *dispex)
{
HTMLPluginsCollection *This = HTMLPluginsCollection_from_DispatchEx(dispex);
if(This->navigator) {
This->navigator->plugins = NULL;
This->navigator = NULL;
}
}
static void HTMLPluginsCollection_destructor(DispatchEx *dispex)
{
HTMLPluginsCollection *This = HTMLPluginsCollection_from_DispatchEx(dispex);
free(This);
}
static const dispex_static_data_vtbl_t HTMLPluginsCollection_dispex_vtbl = {
HTMLPluginsCollection_destructor,
HTMLPluginsCollection_unlink
};
static const tid_t HTMLPluginsCollection_iface_tids[] = { static const tid_t HTMLPluginsCollection_iface_tids[] = {
IHTMLPluginsCollection_tid, IHTMLPluginsCollection_tid,
0 0
}; };
static dispex_static_data_t HTMLPluginsCollection_dispex = { static dispex_static_data_t HTMLPluginsCollection_dispex = {
L"PluginArray", L"PluginArray",
NULL, &HTMLPluginsCollection_dispex_vtbl,
DispCPlugins_tid, DispCPlugins_tid,
HTMLPluginsCollection_iface_tids HTMLPluginsCollection_iface_tids
}; };