From 91475c684ff76daeb5302b7b42aa80f323fa229f Mon Sep 17 00:00:00 2001 From: Conor McCarthy Date: Mon, 17 Jun 2024 17:07:32 +1000 Subject: [PATCH] vkd3d: Clear the output pointer on failure in vkd3d_create_versioned_root_signature_deserializer(). --- libs/vkd3d/vkd3d_main.c | 1 + tests/d3d12.c | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/libs/vkd3d/vkd3d_main.c b/libs/vkd3d/vkd3d_main.c index 9eccec11..5215cf8e 100644 --- a/libs/vkd3d/vkd3d_main.c +++ b/libs/vkd3d/vkd3d_main.c @@ -415,6 +415,7 @@ HRESULT vkd3d_create_versioned_root_signature_deserializer(const void *data, SIZ if (FAILED(hr = d3d12_versioned_root_signature_deserializer_init(object, &dxbc))) { vkd3d_free(object); + *deserializer = NULL; return hr; } diff --git a/tests/d3d12.c b/tests/d3d12.c index 95b7c8a8..10ae5a36 100644 --- a/tests/d3d12.c +++ b/tests/d3d12.c @@ -13152,20 +13152,20 @@ static void test_root_signature_byte_code(void) hr = pfn_D3D12CreateVersionedRootSignatureDeserializer(empty_rootsig, 0, &IID_ID3D12VersionedRootSignatureDeserializer, (void **)&versioned_deserializer); ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr); - todo ok(!versioned_deserializer, "Got unexpected versioned_deserializer %p.\n", versioned_deserializer); + ok(!versioned_deserializer, "Got unexpected versioned_deserializer %p.\n", versioned_deserializer); versioned_deserializer = (ID3D12VersionedRootSignatureDeserializer *)0xdeadbeef; hr = pfn_D3D12CreateVersionedRootSignatureDeserializer(NULL, 0, &IID_ID3D12VersionedRootSignatureDeserializer, (void **)&versioned_deserializer); ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr); - todo ok(!versioned_deserializer, "Got unexpected versioned_deserializer %p.\n", versioned_deserializer); + ok(!versioned_deserializer, "Got unexpected versioned_deserializer %p.\n", versioned_deserializer); versioned_deserializer = (ID3D12VersionedRootSignatureDeserializer *)0xdeadbeef; i = 0xdeadbeef; hr = pfn_D3D12CreateVersionedRootSignatureDeserializer(&i, sizeof(i), &IID_ID3D12VersionedRootSignatureDeserializer, (void **)&versioned_deserializer); ok(hr == E_INVALIDARG, "Got unexpected hr %#x.\n", hr); - todo ok(!versioned_deserializer, "Got unexpected versioned_deserializer %p.\n", versioned_deserializer); + ok(!versioned_deserializer, "Got unexpected versioned_deserializer %p.\n", versioned_deserializer); hr = pfn_D3D12CreateVersionedRootSignatureDeserializer(empty_rootsig, sizeof(empty_rootsig), &IID_ID3D12VersionedRootSignatureDeserializer, (void **)&versioned_deserializer);