From 8da71ca6a66d4543e0f51e83196f7429413bd3d1 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Mon, 29 Dec 2008 16:31:22 +0100 Subject: [PATCH] d3d9: Use separate codepaths for failure and NULL return values in GetVertexShader() / GetPixelShader(). --- dlls/d3d9/pixelshader.c | 20 +++++++++++++++----- dlls/d3d9/vertexshader.c | 19 ++++++++++++++----- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/dlls/d3d9/pixelshader.c b/dlls/d3d9/pixelshader.c index 059116aa808..dddda28e76a 100644 --- a/dlls/d3d9/pixelshader.c +++ b/dlls/d3d9/pixelshader.c @@ -170,11 +170,21 @@ HRESULT WINAPI IDirect3DDevice9Impl_GetPixelShader(LPDIRECT3DDEVICE9EX iface, ID EnterCriticalSection(&d3d9_cs); hrc = IWineD3DDevice_GetPixelShader(This->WineD3DDevice, &object); - if (hrc == D3D_OK && object != NULL) { - hrc = IWineD3DPixelShader_GetParent(object, (IUnknown **)ppShader); - IWineD3DPixelShader_Release(object); - } else { - *ppShader = NULL; + if (SUCCEEDED(hrc)) + { + if (object) + { + hrc = IWineD3DPixelShader_GetParent(object, (IUnknown **)ppShader); + IWineD3DPixelShader_Release(object); + } + else + { + *ppShader = NULL; + } + } + else + { + WARN("(%p) : Call to IWineD3DDevice_GetPixelShader failed %u (device %p)\n", This, hrc, This->WineD3DDevice); } LeaveCriticalSection(&d3d9_cs); diff --git a/dlls/d3d9/vertexshader.c b/dlls/d3d9/vertexshader.c index 61722255004..6478b68656f 100644 --- a/dlls/d3d9/vertexshader.c +++ b/dlls/d3d9/vertexshader.c @@ -166,11 +166,20 @@ HRESULT WINAPI IDirect3DDevice9Impl_GetVertexShader(LPDIRECT3DDEVICE9EX iface, I TRACE("(%p) : Relay device@%p\n", This, This->WineD3DDevice); EnterCriticalSection(&d3d9_cs); hrc = IWineD3DDevice_GetVertexShader(This->WineD3DDevice, &pShader); - if(hrc == D3D_OK && pShader != NULL){ - hrc = IWineD3DVertexShader_GetParent(pShader, (IUnknown **)ppShader); - IWineD3DVertexShader_Release(pShader); - } else { - *ppShader = NULL; + if (SUCCEEDED(hrc)) + { + if (pShader) + { + hrc = IWineD3DVertexShader_GetParent(pShader, (IUnknown **)ppShader); + IWineD3DVertexShader_Release(pShader); + } + else + { + *ppShader = NULL; + } + } + else + { WARN("(%p) : Call to IWineD3DDevice_GetVertexShader failed %u (device %p)\n", This, hrc, This->WineD3DDevice); } LeaveCriticalSection(&d3d9_cs);