mirror of
https://github.com/glfw/glfw.git
synced 2026-01-10 00:03:25 +00:00
Merge c8d05935d4 into dbadda2683
This commit is contained in:
commit
5cbeb84c5d
37
src/init.c
37
src/init.c
@ -248,27 +248,24 @@ int _glfw_max(int a, int b)
|
||||
|
||||
void* _glfw_calloc(size_t count, size_t size)
|
||||
{
|
||||
if (count && size)
|
||||
{
|
||||
void* block;
|
||||
|
||||
if (count > SIZE_MAX / size)
|
||||
{
|
||||
_glfwInputError(GLFW_INVALID_VALUE, "Allocation size overflow");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
block = _glfw.allocator.allocate(count * size, _glfw.allocator.user);
|
||||
if (block)
|
||||
return memset(block, 0, count * size);
|
||||
else
|
||||
{
|
||||
_glfwInputError(GLFW_OUT_OF_MEMORY, NULL);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
if (!count || !size)
|
||||
return NULL;
|
||||
|
||||
const size_t total_size = count * size;
|
||||
if (total_size > SIZE_MAX)
|
||||
{
|
||||
_glfwInputError(GLFW_INVALID_VALUE, "Allocation size overflow");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void* block = _glfw.allocator.allocate(total_size, _glfw.allocator.user);
|
||||
if (!block)
|
||||
{
|
||||
_glfwInputError(GLFW_OUT_OF_MEMORY, NULL);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return memset(block, 0, total_size);
|
||||
}
|
||||
|
||||
void* _glfw_realloc(void* block, size_t size)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user