Module: wine Branch: master Commit: 3fdc28c7f866c060cb716f9f81a1dd5c466e0cac URL: https://gitlab.winehq.org/wine/wine/-/commit/3fdc28c7f866c060cb716f9f81a1dd5...
Author: Ziqing Hui zhui@codeweavers.com Date: Tue Aug 23 11:42:34 2022 +0800
d3dx10: Return E_FAIL in D3DX10CreateEffectFromFile for NULL file name.
---
dlls/d3dx10_43/compiler.c | 5 ++++- dlls/d3dx10_43/tests/d3dx10.c | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/dlls/d3dx10_43/compiler.c b/dlls/d3dx10_43/compiler.c index 98553e78b1b..281dae329e5 100644 --- a/dlls/d3dx10_43/compiler.c +++ b/dlls/d3dx10_43/compiler.c @@ -107,6 +107,9 @@ HRESULT WINAPI D3DX10CreateEffectFromFileW(const WCHAR *filename, const D3D10_SH debugstr_w(filename), defines, include, debugstr_a(profile), shader_flags, effect_flags, device, effect_pool, pump, effect, errors, hresult);
+ if (!filename) + return E_FAIL; + if (pump) FIXME("Asynchronous mode is not supported.\n");
@@ -139,7 +142,7 @@ HRESULT WINAPI D3DX10CreateEffectFromFileA(const char *filename, const D3D10_SHA device, effect_pool, pump, effect, errors, hresult);
if (!filename) - return E_INVALIDARG; + return E_FAIL;
len = MultiByteToWideChar(CP_ACP, 0, filename, -1, NULL, 0); if (!(filenameW = malloc(len * sizeof(*filenameW)))) diff --git a/dlls/d3dx10_43/tests/d3dx10.c b/dlls/d3dx10_43/tests/d3dx10.c index 781c28371b3..8c89a08b734 100644 --- a/dlls/d3dx10_43/tests/d3dx10.c +++ b/dlls/d3dx10_43/tests/d3dx10.c @@ -4054,7 +4054,7 @@ static void test_create_effect_from_file(void) effect = (ID3D10Effect *)0xdeadbeef; hr = D3DX10CreateEffectFromFileW(NULL, NULL, NULL, NULL, 0x0, 0x0, device, NULL, NULL, &effect, &errors, NULL); - todo_wine ok(hr == E_FAIL, "Got unexpected hr %#lx.\n", hr); + ok(hr == E_FAIL, "Got unexpected hr %#lx.\n", hr); ok(errors == (ID3D10Blob *)0xdeadbeef, "Got unexpected errors %p.\n", errors); ok(effect == (ID3D10Effect *)0xdeadbeef, "Got unexpected effect %p.\n", effect);
@@ -4062,7 +4062,7 @@ static void test_create_effect_from_file(void) effect = (ID3D10Effect *)0xdeadbeef; hr = D3DX10CreateEffectFromFileA(NULL, NULL, NULL, NULL, 0x0, 0x0, device, NULL, NULL, &effect, &errors, NULL); - todo_wine ok(hr == E_FAIL, "Got unexpected hr %#lx.\n", hr); + ok(hr == E_FAIL, "Got unexpected hr %#lx.\n", hr); ok(errors == (ID3D10Blob *)0xdeadbeef, "Got unexpected errors %p.\n", errors); ok(effect == (ID3D10Effect *)0xdeadbeef, "Got unexpected effect %p.\n", effect);