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