Module: wine Branch: refs/heads/master Commit: 7f617230a5bebea3ffec03743be00f3e1a5de75c URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=7f617230a5bebea3ffec0374...
Author: Jacek Caban jacek@codeweavers.com Date: Sun Jun 25 15:49:39 2006 +0200
mshtml: Destroy connection points.
---
dlls/mshtml/conpoint.c | 20 ++++++++++++++++++++ dlls/mshtml/htmldoc.c | 2 ++ dlls/mshtml/mshtml_private.h | 2 ++ 3 files changed, 24 insertions(+), 0 deletions(-)
diff --git a/dlls/mshtml/conpoint.c b/dlls/mshtml/conpoint.c index 6ef49ea..860a9a5 100644 --- a/dlls/mshtml/conpoint.c +++ b/dlls/mshtml/conpoint.c @@ -197,6 +197,19 @@ static void ConnectionPoint_Create(HTMLD *cp = ret; }
+static void ConnectionPoint_Destroy(ConnectionPoint *This) +{ + int i; + + for(i=0; i<This->sinks_size; i++) { + if(This->sinks[i].unk) + IUnknown_Release(This->sinks[i].unk); + } + + HeapFree(GetProcessHeap(), 0, This->sinks); + HeapFree(GetProcessHeap(), 0, This); +} + #define CONPTCONT_THIS(iface) DEFINE_THIS(HTMLDocument, ConnectionPointContainer, iface)
static HRESULT WINAPI ConnectionPointContainer_QueryInterface(IConnectionPointContainer *iface, @@ -271,3 +284,10 @@ void HTMLDocument_ConnectionPoints_Init( ConnectionPoint_Create(This, &DIID_HTMLDocumentEvents, &This->cp_htmldocevents); ConnectionPoint_Create(This, &DIID_HTMLDocumentEvents2, &This->cp_htmldocevents2); } + +void HTMLDocument_ConnectionPoints_Destroy(HTMLDocument *This) +{ + ConnectionPoint_Destroy(This->cp_propnotif); + ConnectionPoint_Destroy(This->cp_htmldocevents); + ConnectionPoint_Destroy(This->cp_htmldocevents2); +} diff --git a/dlls/mshtml/htmldoc.c b/dlls/mshtml/htmldoc.c index a8fe470..10081ad 100644 --- a/dlls/mshtml/htmldoc.c +++ b/dlls/mshtml/htmldoc.c @@ -157,6 +157,8 @@ static ULONG WINAPI HTMLDocument_Release
release_nodes(This);
+ HTMLDocument_ConnectionPoints_Destroy(This); + if(This->nscontainer) NSContainer_Release(This->nscontainer);
diff --git a/dlls/mshtml/mshtml_private.h b/dlls/mshtml/mshtml_private.h index 4c7abe4..ee608de 100644 --- a/dlls/mshtml/mshtml_private.h +++ b/dlls/mshtml/mshtml_private.h @@ -260,6 +260,8 @@ void HTMLDocument_Service_Init(HTMLDocum void HTMLDocument_Hlink_Init(HTMLDocument*); void HTMLDocument_ConnectionPoints_Init(HTMLDocument*);
+void HTMLDocument_ConnectionPoints_Destroy(HTMLDocument*); + NSContainer *NSContainer_Create(HTMLDocument*,NSContainer*); void NSContainer_Release(NSContainer*);