Józef Kucia : d3d11: Return E_INVALIDARG from GetData () when "data" is NULL and "data_size" is non-zero.
Module: wine Branch: master Commit: d3c58df4553dd6abd45160495beddd356856757c URL: http://source.winehq.org/git/wine.git/?a=commit;h=d3c58df4553dd6abd45160495b... Author: Józef Kucia <jkucia(a)codeweavers.com> Date: Mon Nov 21 15:15:54 2016 +0100 d3d11: Return E_INVALIDARG from GetData() when "data" is NULL and "data_size" is non-zero. Signed-off-by: Józef Kucia <jkucia(a)codeweavers.com> Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- 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);
participants (1)
-
Alexandre Julliard