libs/vkd3d: Return S_FALSE from D3D12CreateDevice() when device is NULL.

Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Józef Kucia
2018-07-19 14:47:42 +02:00
committed by Alexandre Julliard
parent 72859f8898
commit 9ce53b74df
2 changed files with 10 additions and 1 deletions

View File

@@ -28,7 +28,7 @@ HRESULT vkd3d_create_device(const struct vkd3d_device_create_info *create_info,
TRACE("create_info %p, iid %s, device %p.\n", create_info, debugstr_guid(iid), device);
if (!create_info || !device)
if (!create_info)
return E_INVALIDARG;
if (create_info->type != VKD3D_STRUCTURE_TYPE_DEVICE_CREATE_INFO)
{
@@ -76,6 +76,12 @@ HRESULT vkd3d_create_device(const struct vkd3d_device_create_info *create_info,
if (FAILED(hr))
return hr;
if (!device)
{
ID3D12Device_Release(&object->ID3D12Device_iface);
return S_FALSE;
}
return return_interface((IUnknown *)&object->ID3D12Device_iface, &IID_ID3D12Device,
iid, device);
}