Module: wine Branch: master Commit: ae91cfe380f53c29f7d91f97f4f7dcbdef288be4 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ae91cfe380f53c29f7d91f97f4...
Author: Stefan Dösinger stefan@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; }