Stefan Dösinger : ddraw: SetClipper refcounting fix.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Feb 19 07:02:18 CST 2007
Module: wine
Branch: master
Commit: ae91cfe380f53c29f7d91f97f4f7dcbdef288be4
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ae91cfe380f53c29f7d91f97f4f7dcbdef288be4
Author: Stefan Dösinger <stefan at codeweavers.com>
Date: Fri Feb 16 19:08:21 2007 +0100
ddraw: SetClipper refcounting fix.
---
dlls/ddraw/surface.c | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
index a84b08f..cd35832 100644
--- a/dlls/ddraw/surface.c
+++ b/dlls/ddraw/surface.c
@@ -1882,17 +1882,18 @@ IDirectDrawSurfaceImpl_SetClipper(IDirectDrawSurface7 *iface,
IDirectDrawClipper *Clipper)
{
ICOM_THIS_FROM(IDirectDrawSurfaceImpl, IDirectDrawSurface7, iface);
+ IDirectDrawClipperImpl *oldClipper = This->clipper;
TRACE("(%p)->(%p)\n",This,Clipper);
if (ICOM_OBJECT(IDirectDrawClipperImpl, IDirectDrawClipper, Clipper) == This->clipper)
return DD_OK;
- if (This->clipper != NULL)
- IDirectDrawClipper_Release(ICOM_INTERFACE(This->clipper, IDirectDrawClipper) );
-
This->clipper = ICOM_OBJECT(IDirectDrawClipperImpl, IDirectDrawClipper, Clipper);
+
if (Clipper != NULL)
IDirectDrawClipper_AddRef(Clipper);
+ if(oldClipper)
+ IDirectDrawClipper_Release(ICOM_INTERFACE(oldClipper, IDirectDrawClipper));
return DD_OK;
}
More information about the wine-cvs
mailing list