From e809a500d73c07c0012e80e185e95a5255a82e38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20D=C3=B6singer?= Date: Wed, 13 Mar 2019 21:46:23 +0330 Subject: [PATCH] ddraw: Clear *clipper on failure in ddraw_surface7_GetClipper(). MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stefan Dösinger Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- dlls/ddraw/surface.c | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c index 2b788bd8d13..b8cc2d2195d 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c @@ -4408,39 +4408,25 @@ static HRESULT WINAPI DECLSPEC_HOTPATCH ddraw_surface1_BltFast(IDirectDrawSurfac src_impl ? &src_impl->IDirectDrawSurface7_iface : NULL, src_rect, flags); } -/***************************************************************************** - * IDirectDrawSurface7::GetClipper - * - * Returns the IDirectDrawClipper interface of the clipper assigned to this - * surface - * - * Params: - * Clipper: Address to store the interface pointer at - * - * Returns: - * DD_OK on success - * DDERR_INVALIDPARAMS if Clipper is NULL - * DDERR_NOCLIPPERATTACHED if there's no clipper attached - * - *****************************************************************************/ -static HRESULT WINAPI ddraw_surface7_GetClipper(IDirectDrawSurface7 *iface, IDirectDrawClipper **Clipper) +static HRESULT WINAPI ddraw_surface7_GetClipper(IDirectDrawSurface7 *iface, IDirectDrawClipper **clipper) { struct ddraw_surface *surface = impl_from_IDirectDrawSurface7(iface); - TRACE("iface %p, clipper %p.\n", iface, Clipper); + TRACE("iface %p, clipper %p.\n", iface, clipper); - if (!Clipper) + if (!clipper) return DDERR_INVALIDPARAMS; wined3d_mutex_lock(); if (!surface->clipper) { wined3d_mutex_unlock(); + *clipper = NULL; return DDERR_NOCLIPPERATTACHED; } - *Clipper = &surface->clipper->IDirectDrawClipper_iface; - IDirectDrawClipper_AddRef(*Clipper); + *clipper = &surface->clipper->IDirectDrawClipper_iface; + IDirectDrawClipper_AddRef(*clipper); wined3d_mutex_unlock(); return DD_OK;