[PATCH 3/5] ddraw: Reject setting a 0 material handle in d3d_viewport_SetBackground().

Henri Verbeet hverbeet at codeweavers.com
Tue Apr 29 15:02:47 CDT 2014


---
 dlls/ddraw/viewport.c |   29 ++++-------------------------
 1 file changed, 4 insertions(+), 25 deletions(-)

diff --git a/dlls/ddraw/viewport.c b/dlls/ddraw/viewport.c
index 99c6ec9..e557161 100644
--- a/dlls/ddraw/viewport.c
+++ b/dlls/ddraw/viewport.c
@@ -524,39 +524,18 @@ static HRESULT WINAPI d3d_viewport_LightElements(IDirect3DViewport3 *iface,
     return DDERR_UNSUPPORTED;
 }
 
-/*****************************************************************************
- * IDirect3DViewport3::SetBackground
- *
- * Sets the background material
- *
- * Params:
- *  hMat: Handle from a IDirect3DMaterial interface
- *
- * Returns:
- *  D3D_OK on success
- *
- *****************************************************************************/
-static HRESULT WINAPI d3d_viewport_SetBackground(IDirect3DViewport3 *iface, D3DMATERIALHANDLE hMat)
+static HRESULT WINAPI d3d_viewport_SetBackground(IDirect3DViewport3 *iface, D3DMATERIALHANDLE material)
 {
     struct d3d_viewport *viewport = impl_from_IDirect3DViewport3(iface);
     struct d3d_material *m;
 
-    TRACE("iface %p, material %#x.\n", iface, hMat);
+    TRACE("iface %p, material %#x.\n", iface, material);
 
     wined3d_mutex_lock();
 
-    if (!hMat)
-    {
-        viewport->background = NULL;
-        TRACE("Setting background to NULL\n");
-        wined3d_mutex_unlock();
-        return D3D_OK;
-    }
-
-    m = ddraw_get_object(&viewport->ddraw->d3ddevice->handle_table, hMat - 1, DDRAW_HANDLE_MATERIAL);
-    if (!m)
+    if (!(m = ddraw_get_object(&viewport->ddraw->d3ddevice->handle_table, material - 1, DDRAW_HANDLE_MATERIAL)))
     {
-        WARN("Invalid material handle.\n");
+        WARN("Invalid material handle %#x.\n", material);
         wined3d_mutex_unlock();
         return DDERR_INVALIDPARAMS;
     }
-- 
1.7.10.4




More information about the wine-patches mailing list