H. Verbeet : wined3d: Don't free backends if they're not created yet.

Alexandre Julliard julliard at winehq.org
Thu Aug 21 10:02:16 CDT 2008


Module: wine
Branch: master
Commit: c33e03cca36a60b15f82cc2a802cf719489bdf7d
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c33e03cca36a60b15f82cc2a802cf719489bdf7d

Author: H. Verbeet <hverbeet at gmail.com>
Date:   Wed Aug 20 22:45:02 2008 +0200

wined3d: Don't free backends if they're not created yet.

This would crash if CreateAdditionalSwapChain() failed.

---

 dlls/wined3d/device.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c
index e1e01e2..69a7642 100644
--- a/dlls/wined3d/device.c
+++ b/dlls/wined3d/device.c
@@ -2259,9 +2259,15 @@ err_out:
         IWineD3DStateBlock_Release((IWineD3DStateBlock *) This->stateBlock);
         This->stateBlock = NULL;
     }
-    This->blitter->free_private(iface);
-    This->frag_pipe->free_private(iface);
-    This->shader_backend->shader_free_private(iface);
+    if (This->blit_priv) {
+        This->blitter->free_private(iface);
+    }
+    if (This->fragment_priv) {
+        This->frag_pipe->free_private(iface);
+    }
+    if (This->shader_priv) {
+        This->shader_backend->shader_free_private(iface);
+    }
     return hr;
 }
 




More information about the wine-cvs mailing list