From 6414eb6da3c322dceb3a3eb872b08ddc2395f373 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Fri, 18 Nov 2005 12:06:12 +0000 Subject: [PATCH] Free ConnectionPoint objects (fix memory leak). --- dlls/shdocvw/events.c | 7 +++++++ dlls/shdocvw/shdocvw.h | 1 + dlls/shdocvw/webbrowser.c | 1 + 3 files changed, 9 insertions(+) diff --git a/dlls/shdocvw/events.c b/dlls/shdocvw/events.c index 7a2f4e28a54..184b694e6b4 100644 --- a/dlls/shdocvw/events.c +++ b/dlls/shdocvw/events.c @@ -233,3 +233,10 @@ void WebBrowser_Events_Init(WebBrowser *This) ConnectionPoint_Create(This, &DIID_DWebBrowserEvents, &This->cp_wbe); ConnectionPoint_Create(This, &IID_IPropertyNotifySink, &This->cp_pns); } + +void WebBrowser_Events_Destroy(WebBrowser *This) +{ + HeapFree(GetProcessHeap(), 0, This->cp_wbe2); + HeapFree(GetProcessHeap(), 0, This->cp_wbe); + HeapFree(GetProcessHeap(), 0, This->cp_pns); +} diff --git a/dlls/shdocvw/shdocvw.h b/dlls/shdocvw/shdocvw.h index 22f81d1bb34..93daa71adc8 100644 --- a/dlls/shdocvw/shdocvw.h +++ b/dlls/shdocvw/shdocvw.h @@ -131,6 +131,7 @@ void WebBrowser_ClientSite_Init(WebBrowser*); void WebBrowser_DocHost_Init(WebBrowser*); void WebBrowser_OleObject_Destroy(WebBrowser*); +void WebBrowser_Events_Destroy(WebBrowser*); HRESULT WebBrowser_Create(IUnknown*,REFIID,void**); diff --git a/dlls/shdocvw/webbrowser.c b/dlls/shdocvw/webbrowser.c index 9b2e72bcff1..4ffb3c0a430 100644 --- a/dlls/shdocvw/webbrowser.c +++ b/dlls/shdocvw/webbrowser.c @@ -125,6 +125,7 @@ static ULONG WINAPI WebBrowser_Release(IWebBrowser2 *iface) IUnknown_Release(This->document); WebBrowser_OleObject_Destroy(This); + WebBrowser_Events_Destroy(This); HeapFree(GetProcessHeap(), 0, This); SHDOCVW_UnlockModule();