Commit c27b83ec authored by Henri Verbeet's avatar Henri Verbeet Committed by Alexandre Julliard

d3d11: Introduce a helper function to allocate arrays.

parent 22d52ed5
...@@ -79,6 +79,13 @@ HRESULT d3d_set_private_data(struct wined3d_private_store *store, ...@@ -79,6 +79,13 @@ HRESULT d3d_set_private_data(struct wined3d_private_store *store,
HRESULT d3d_set_private_data_interface(struct wined3d_private_store *store, HRESULT d3d_set_private_data_interface(struct wined3d_private_store *store,
REFGUID guid, const IUnknown *object) DECLSPEC_HIDDEN; REFGUID guid, const IUnknown *object) DECLSPEC_HIDDEN;
static inline void *d3d11_calloc(SIZE_T count, SIZE_T size)
{
if (count > ~(SIZE_T)0 / size)
return NULL;
return HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, count * size);
}
static inline void read_dword(const char **ptr, DWORD *d) static inline void read_dword(const char **ptr, DWORD *d)
{ {
memcpy(d, *ptr, sizeof(*d)); memcpy(d, *ptr, sizeof(*d));
......
...@@ -54,8 +54,7 @@ static HRESULT d3d11_input_layout_to_wined3d_declaration(const D3D11_INPUT_ELEME ...@@ -54,8 +54,7 @@ static HRESULT d3d11_input_layout_to_wined3d_declaration(const D3D11_INPUT_ELEME
return E_FAIL; return E_FAIL;
} }
*wined3d_elements = HeapAlloc(GetProcessHeap(), 0, element_count * sizeof(**wined3d_elements)); if (!(*wined3d_elements = d3d11_calloc(element_count, sizeof(**wined3d_elements))))
if (!*wined3d_elements)
{ {
ERR("Failed to allocate wined3d vertex element array memory.\n"); ERR("Failed to allocate wined3d vertex element array memory.\n");
HeapFree(GetProcessHeap(), 0, is.elements); HeapFree(GetProcessHeap(), 0, is.elements);
......
...@@ -121,8 +121,7 @@ HRESULT shader_parse_signature(const char *data, DWORD data_size, struct wined3d ...@@ -121,8 +121,7 @@ HRESULT shader_parse_signature(const char *data, DWORD data_size, struct wined3d
return E_INVALIDARG; return E_INVALIDARG;
} }
e = HeapAlloc(GetProcessHeap(), 0, count * sizeof(*e)); if (!(e = d3d11_calloc(count, sizeof(*e))))
if (!e)
{ {
ERR("Failed to allocate input signature memory.\n"); ERR("Failed to allocate input signature memory.\n");
return E_OUTOFMEMORY; return E_OUTOFMEMORY;
......
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