blob: 291a16dcafecc73419ec800f15f29bb2867334c6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
/*
* Copyright (c) Jon Santmyer.
* This source file is released under the LGPL Version 3 as detailed in
* the LICENSE file provided in the following repository:
* https://git.jonsantmyer.com/heap/
* */
#include "malloc.h"
#include <string.h>
#include <errno.h>
void*
__calloc_impl(heap_cache_t *cache, size_t nmemb, size_t w)
{
w = REALW(w);
void *ptr = __malloc_impl(cache, w * nmemb);
if(ptr == NULL) return NULL;
if(errno != 0) return (void*)-1;
/* Zero newly allocated memory as per spec.*/
memset(ptr, 0, w * nmemb);
return ptr;
}
|