[PATCH 3/6] d3d11: Return E_INVALIDARG from GetData() when "data" is NULL and "data_size" is non-zero.

Józef Kucia jkucia at codeweavers.com
Mon Nov 21 08:15:54 CST 2016


Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
---
 dlls/d3d11/async.c       | 3 +++
 dlls/d3d11/device.c      | 3 +++
 dlls/d3d11/tests/d3d11.c | 2 +-
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/dlls/d3d11/async.c b/dlls/d3d11/async.c
index fa38484..93f428e 100644
--- a/dlls/d3d11/async.c
+++ b/dlls/d3d11/async.c
@@ -298,6 +298,9 @@ static HRESULT STDMETHODCALLTYPE d3d10_query_GetData(ID3D10Query *iface, void *d
 
     TRACE("iface %p, data %p, data_size %u, flags %#x.\n", iface, data, data_size, flags);
 
+    if (!data && data_size)
+        return E_INVALIDARG;
+
     wined3d_flags = wined3d_getdata_flags_from_d3d11_async_getdata_flags(flags);
 
     wined3d_mutex_lock();
diff --git a/dlls/d3d11/device.c b/dlls/d3d11/device.c
index 99991b4..f90d512 100644
--- a/dlls/d3d11/device.c
+++ b/dlls/d3d11/device.c
@@ -527,6 +527,9 @@ static HRESULT STDMETHODCALLTYPE d3d11_immediate_context_GetData(ID3D11DeviceCon
     TRACE("iface %p, asynchronous %p, data %p, data_size %u, data_flags %#x.\n",
             iface, asynchronous, data, data_size, data_flags);
 
+    if (!data && data_size)
+        return E_INVALIDARG;
+
     wined3d_flags = wined3d_getdata_flags_from_d3d11_async_getdata_flags(data_flags);
 
     wined3d_mutex_lock();
diff --git a/dlls/d3d11/tests/d3d11.c b/dlls/d3d11/tests/d3d11.c
index 0e16967..9a661ed 100644
--- a/dlls/d3d11/tests/d3d11.c
+++ b/dlls/d3d11/tests/d3d11.c
@@ -4710,7 +4710,7 @@ static void test_occlusion_query(void)
     hr = ID3D11DeviceContext_GetData(context, query, NULL, sizeof(DWORD), 0);
     ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
     hr = ID3D11DeviceContext_GetData(context, query, NULL, sizeof(data), 0);
-    todo_wine ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
+    ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr);
 
     ID3D11DeviceContext_Begin(context, query);
     ID3D11DeviceContext_End(context, query);
-- 
2.7.3




More information about the wine-patches mailing list