Henri Verbeet : d3d9: Use separate codepaths for failure and NULL return values in GetVertexShader () / GetPixelShader().
Alexandre Julliard
julliard at winehq.org
Tue Dec 30 06:57:00 CST 2008
Module: wine
Branch: master
Commit: 8da71ca6a66d4543e0f51e83196f7429413bd3d1
URL: http://source.winehq.org/git/wine.git/?a=commit;h=8da71ca6a66d4543e0f51e83196f7429413bd3d1
Author: Henri Verbeet <hverbeet at 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);
More information about the wine-cvs
mailing list