From cbf78c5d4921192a7d5022f5bb2663b5833cff4e Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Wed, 20 Apr 2011 22:09:25 +0200 Subject: [PATCH] ddraw: Release the wined3d surface first in ddraw_surface_destroy(). --- dlls/ddraw/surface.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c index 531e5294248..0105848e6bc 100644 --- a/dlls/ddraw/surface.c +++ b/dlls/ddraw/surface.c @@ -244,6 +244,9 @@ void ddraw_surface_destroy(IDirectDrawSurfaceImpl *This) WARN("(%p): Destroying surface with refount %d\n", This, This->ref); } + if (This->WineD3DSurface) + IWineD3DSurface_Release(This->WineD3DSurface); + /* Check for attached surfaces and detach them */ if(This->first_attached != This) { @@ -276,10 +279,6 @@ void ddraw_surface_destroy(IDirectDrawSurfaceImpl *This) } } - /* Now destroy the surface. Wait: It could have been released if we are a texture */ - if(This->WineD3DSurface) - IWineD3DSurface_Release(This->WineD3DSurface); - /* Having a texture handle set implies that the device still exists */ if(This->Handle) {