Changed as suggested by Stefan Dösinger.
This fixes a crash in a game called "Autobahnverfolgungsjagd Total"
(not in AppDB).
Cheers,
Cihan
>From 323eae1df7905ea7d0e187a2eebee8e33337eba8 Mon Sep 17 00:00:00 2001
From: Cihan A <[EMAIL PROTECTED]>
Date: Sun, 16 Mar 2008 17:40:29 +0100
Subject: ddraw: Fix refcounting of palettes when loading textures
---
dlls/ddraw/texture.c | 10 +++++++++-
1 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/dlls/ddraw/texture.c b/dlls/ddraw/texture.c
index 8835e4e..1541237 100644
--- a/dlls/ddraw/texture.c
+++ b/dlls/ddraw/texture.c
@@ -301,7 +301,7 @@ IDirect3DTextureImpl_Load(IDirect3DTexture2 *iface,
ICOM_THIS_FROM(IDirectDrawSurfaceImpl, IDirect3DTexture2, iface);
IDirectDrawSurfaceImpl *src_ptr = ICOM_OBJECT(IDirectDrawSurfaceImpl, IDirect3DTexture2, D3DTexture2);
IWineD3DPalette *wine_pal, *wine_pal_src;
- IDirectDrawPalette *pal = NULL, *pal_src = NULL;
+ IDirectDrawPalette *pal, *pal_src;
HRESULT ret_value = D3D_OK;
TRACE("(%p)->(%p)\n", This, src_ptr);
@@ -346,6 +346,10 @@ IDirect3DTextureImpl_Load(IDirect3DTexture2 *iface,
return D3DERR_TEXTURE_LOAD_FAILED;
}
}
+ else
+ {
+ pal = NULL;
+ }
ret_value = IWineD3DSurface_GetPalette(src_ptr->WineD3DSurface, &wine_pal_src);
if( ret_value != D3D_OK)
@@ -365,6 +369,10 @@ IDirect3DTextureImpl_Load(IDirect3DTexture2 *iface,
return D3DERR_TEXTURE_LOAD_FAILED;
}
}
+ else
+ {
+ pal_src = NULL;
+ }
if (pal_src != NULL)
{
--
1.5.4.2