2 * This file is part of mutt-ng, see http://www.muttng.org/.
3 * It's licensed under the GNU General Public License,
4 * please see the file GPL in the top level source directory.
13 void *_mem_calloc (size_t nmemb, size_t size, int line, const char* fname) {
19 if (((size_t) - 1) / nmemb <= size) {
20 exit_fatal ("mem_calloc", _("Integer overflow -- can't allocate memory!"),
25 if (!(p = calloc (nmemb, size))) {
26 exit_fatal ("mem_calloc", _("Out of memory!"), line, fname, 1);
32 void *_mem_malloc (size_t siz, int line, const char* fname) {
37 if ((p = (void *) malloc (siz)) == 0) { /* __MEM_CHECKED__ */
38 exit_fatal ("mem_malloc", _("Out of memory!"), line, fname, 1);
44 void _mem_realloc (void *ptr, size_t siz, int line, const char* fname) {
46 void **p = (void **) ptr;
50 free (*p); /* __MEM_CHECKED__ */
57 r = (void *) realloc (*p, siz); /* __MEM_CHECKED__ */
59 /* realloc(NULL, nbytes) doesn't seem to work under SunOS 4.1.x --- __MEM_CHECKED__ */
60 r = (void *) malloc (siz); /* __MEM_CHECKED__ */
64 exit_fatal ("mem_realloc", _("Out of memory!"), line, fname, 1);
69 void _mem_free (void *ptr) {
70 void **p = (void **) ptr;
73 free (*p); /* __MEM_CHECKED__ */