From d16c0dc6ce9588f1fabde529390092cb5a2e04df Mon Sep 17 00:00:00 2001 From: Robert Shearman Date: Tue, 14 Feb 2006 11:34:00 +0100 Subject: [PATCH] oleaut32: Free connection point on destruction of the picture object. Handle failure of CreateConnectionPoint on construction. --- dlls/oleaut32/olepicture.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dlls/oleaut32/olepicture.c b/dlls/oleaut32/olepicture.c index 07b0bb1e2d6..b11bc40b9e1 100644 --- a/dlls/oleaut32/olepicture.c +++ b/dlls/oleaut32/olepicture.c @@ -279,7 +279,13 @@ static OLEPictureImpl* OLEPictureImpl_Construct(LPPICTDESC pictDesc, BOOL fOwn) newObject->lpvtblIPersistStream = &OLEPictureImpl_IPersistStream_VTable; newObject->lpvtblIConnectionPointContainer = &OLEPictureImpl_IConnectionPointContainer_VTable; + newObject->pCP = NULL; CreateConnectionPoint((IUnknown*)newObject,&IID_IPropertyNotifySink,&newObject->pCP); + if (!newObject->pCP) + { + HeapFree(GetProcessHeap(), 0, newObject); + return NULL; + } /* * Start with one reference count. The caller of this function @@ -349,6 +355,9 @@ static void OLEPictureImpl_Destroy(OLEPictureImpl* Obj) { TRACE("(%p)\n", Obj); + if (Obj->pCP) + IConnectionPoint_Release(Obj->pCP); + if(Obj->fOwn) { /* We need to destroy the picture */ switch(Obj->desc.picType) { case PICTYPE_BITMAP: -- 2.11.4.GIT