[PATCH 3/5] ddraw: Release the wined3d surface first in ddraw_surface_destroy().

Henri Verbeet hverbeet at codeweavers.com
Wed Apr 20 15:09:25 CDT 2011


---
 dlls/ddraw/surface.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
index 531e529..0105848 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)
     {
-- 
1.7.3.4




More information about the wine-patches mailing list