Commit 5a48acc6 authored by Oliver Stieber's avatar Oliver Stieber Committed by Alexandre Julliard

Allow NULL ppQuery to be passed to CreateQuery.

parent e2b8b43b
......@@ -119,32 +119,35 @@ const IDirect3DQuery9Vtbl Direct3DQuery9_Vtbl =
/* IDirect3DDevice9 IDirect3DQuery9 Methods follow: */
HRESULT WINAPI IDirect3DDevice9Impl_CreateQuery(LPDIRECT3DDEVICE9 iface, D3DQUERYTYPE Type, IDirect3DQuery9** ppQuery) {
IDirect3DDevice9Impl *This = (IDirect3DDevice9Impl *)iface;
IDirect3DQuery9Impl *object = NULL;
HRESULT hr = D3D_OK;
TRACE("(%p) Relay\n", This);
/* Allocate the storage for the device */
object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirect3DQuery9Impl));
if (NULL == object) {
FIXME("Allocation of memory failed\n");
*ppQuery = NULL;
return D3DERR_OUTOFVIDEOMEMORY;
}
object->lpVtbl = &Direct3DQuery9_Vtbl;
object->ref = 1;
hr = IWineD3DDevice_CreateQuery(This->WineD3DDevice, Type, &(object->wineD3DQuery), (IUnknown*)object);
if (FAILED(hr)) {
/* free up object */
FIXME("(%p) call to IWineD3DDevice_CreateQuery failed\n", This);
HeapFree(GetProcessHeap(), 0, object);
*ppQuery = NULL;
} else {
*ppQuery = (LPDIRECT3DQUERY9) object;
}
TRACE("(%p) : returning %p \n", This, *ppQuery);
return hr;
IDirect3DDevice9Impl *This = (IDirect3DDevice9Impl *)iface;
IDirect3DQuery9Impl *object = NULL;
HRESULT hr = D3D_OK;
TRACE("(%p) Relay\n", This);
if (!ppQuery)
return IWineD3DDevice_CreateQuery(This->WineD3DDevice, Type, NULL, NULL);
/* Allocate the storage for the device */
object = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(IDirect3DQuery9Impl));
if (NULL == object) {
FIXME("Allocation of memory failed\n");
*ppQuery = NULL;
return D3DERR_OUTOFVIDEOMEMORY;
}
object->lpVtbl = &Direct3DQuery9_Vtbl;
object->ref = 1;
hr = IWineD3DDevice_CreateQuery(This->WineD3DDevice, Type, &object->wineD3DQuery, (IUnknown *)object);
if (FAILED(hr)) {
/* free up object */
FIXME("(%p) call to IWineD3DDevice_CreateQuery failed\n", This);
HeapFree(GetProcessHeap(), 0, object);
*ppQuery = NULL;
} else {
*ppQuery = (LPDIRECT3DQUERY9) object;
}
TRACE("(%p) : returning %lx\n", This, hr);
return hr;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment