summaryrefslogtreecommitdiff
path: root/util.h
blob: d2f18c3a811bc96cd1ac0b7228ed5a8bba57ee3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#pragma once

#include <stdbool.h>  // this is useful


#define malloc(n,t) ((t*)malloccheck((n)*sizeof(t)))
#define calloc(n,t) ((t*)calloccheck((n),sizeof(t)))
#define realloc(p,n,t) ((t*)realloccheck((p),(n)*sizeof(t)))

#define mallocx(n,t) ((t*)mallocreal((n)*sizeof(t)))
#define callocx(n,t) ((t*)callocreal((n),sizeof(t)))
#define reallocx(p,n,t) ((t*)reallocreal((p),(n)*sizeof(t)))


char* copystring(const char *s);
char* copybufasstring(const char *b,int length);

void outofmem(void) __attribute__((noreturn));

void* malloccheck(size_t n);
void* calloccheck(size_t n,size_t s);
void* realloccheck(void *p,size_t n);

void* mallocreal(size_t n);
void* callocreal(size_t n,size_t s);
void* reallocreal(void *p,size_t n);