SHDOCVW: Free ConnectionPoint objects

Jacek Caban jacek at codeweavers.com
Thu Nov 17 16:36:08 CST 2005


Changelog:
    Free ConnectionPoint objects (fix memory leak).
-------------- next part --------------
Index: dlls/shdocvw/shdocvw.h
===================================================================
RCS file: /home/wine/wine/dlls/shdocvw/shdocvw.h,v
retrieving revision 1.30
diff -u -p -r1.30 shdocvw.h
--- dlls/shdocvw/shdocvw.h	17 Nov 2005 11:40:55 -0000	1.30
+++ dlls/shdocvw/shdocvw.h	17 Nov 2005 22:36:42 -0000
@@ -131,6 +131,7 @@ void WebBrowser_ClientSite_Init(WebBrows
 void WebBrowser_DocHost_Init(WebBrowser*);
 
 void WebBrowser_OleObject_Destroy(WebBrowser*);
+void WebBrowser_Events_Destroy(WebBrowser*);
 
 HRESULT WebBrowser_Create(IUnknown*,REFIID,void**);
 
Index: dlls/shdocvw/webbrowser.c
===================================================================
RCS file: /home/wine/wine/dlls/shdocvw/webbrowser.c,v
retrieving revision 1.24
diff -u -p -r1.24 webbrowser.c
--- dlls/shdocvw/webbrowser.c	17 Nov 2005 11:03:53 -0000	1.24
+++ dlls/shdocvw/webbrowser.c	17 Nov 2005 22:36:42 -0000
@@ -125,6 +125,7 @@ static ULONG WINAPI WebBrowser_Release(I
             IUnknown_Release(This->document);
 
         WebBrowser_OleObject_Destroy(This);
+        WebBrowser_Events_Destroy(This);
 
         HeapFree(GetProcessHeap(), 0, This);
         SHDOCVW_UnlockModule();
Index: dlls/shdocvw/events.c
===================================================================
RCS file: /home/wine/wine/dlls/shdocvw/events.c,v
retrieving revision 1.17
diff -u -p -r1.17 events.c
--- dlls/shdocvw/events.c	17 Nov 2005 11:40:55 -0000	1.17
+++ dlls/shdocvw/events.c	17 Nov 2005 22:36:42 -0000
@@ -233,3 +233,10 @@ void WebBrowser_Events_Init(WebBrowser *
     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);
+}


More information about the wine-patches mailing list