From 39ec1fef030633ed88a4bb2f5264f42a747fd093 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Wed, 20 Aug 2008 22:45:02 +0200 Subject: [PATCH 1/3] 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; } -- 1.5.6.4