[PATCH] check for NULL wineD3DDevice
Marcus Meissner
marcus at jet.franken.de
Sat May 12 09:25:53 CDT 2007
Hi,
We also need to check for wineD3DDevice in Release
to avoid crashes if no D3D.
Ciao, Marcus
---
dlls/ddraw/surface.c | 37 +++++++++++++++++++------------------
1 files changed, 19 insertions(+), 18 deletions(-)
diff --git a/dlls/ddraw/surface.c b/dlls/ddraw/surface.c
index 62edb21..9e7cac2 100644
--- a/dlls/ddraw/surface.c
+++ b/dlls/ddraw/surface.c
@@ -307,27 +307,28 @@ IDirectDrawSurfaceImpl_Release(IDirectDr
else if( (ddraw->d3d_initialized) && (This == ddraw->d3d_target))
{
TRACE("(%p) Destroying the render target, uninitializing D3D\n", This);
+ if (ddraw->wineD3DDevice) {
+ /* Unset any index buffer, just to be sure */
+ IWineD3DDevice_SetIndices(ddraw->wineD3DDevice, NULL, 0);
+ IWineD3DDevice_SetDepthStencilSurface(ddraw->wineD3DDevice, NULL);
- /* Unset any index buffer, just to be sure */
- IWineD3DDevice_SetIndices(ddraw->wineD3DDevice, NULL, 0);
- IWineD3DDevice_SetDepthStencilSurface(ddraw->wineD3DDevice, NULL);
-
- if(IWineD3DDevice_Uninit3D(ddraw->wineD3DDevice, D3D7CB_DestroyDepthStencilSurface, D3D7CB_DestroySwapChain) != D3D_OK)
- {
- /* Not good */
- ERR("(%p) Failed to uninit 3D\n", This);
- }
- else
- {
- /* Free the d3d window if one was created */
- if(ddraw->d3d_window != 0)
+ if(IWineD3DDevice_Uninit3D(ddraw->wineD3DDevice, D3D7CB_DestroyDepthStencilSurface, D3D7CB_DestroySwapChain) != D3D_OK)
{
- TRACE(" (%p) Destroying the hidden render window %p\n", This, ddraw->d3d_window);
- DestroyWindow(ddraw->d3d_window);
- ddraw->d3d_window = 0;
+ /* Not good */
+ ERR("(%p) Failed to uninit 3D\n", This);
}
- /* Unset the pointers */
- }
+ else
+ {
+ /* Free the d3d window if one was created */
+ if(ddraw->d3d_window != 0)
+ {
+ TRACE(" (%p) Destroying the hidden render window %p\n", This, ddraw->d3d_window);
+ DestroyWindow(ddraw->d3d_window);
+ ddraw->d3d_window = 0;
+ }
+ /* Unset the pointers */
+ }
+ }
ddraw->d3d_initialized = FALSE;
ddraw->d3d_target = NULL;
--
1.4.3.4
More information about the wine-patches
mailing list