Module: wine Branch: master Commit: 8da71ca6a66d4543e0f51e83196f7429413bd3d1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=8da71ca6a66d4543e0f51e8319...
Author: Henri Verbeet hverbeet@codeweavers.com Date: Mon Dec 29 16:31:22 2008 +0100
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 059116a..dddda28 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 6172225..6478b68 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);