summaryrefslogtreecommitdiff
path: root/ext/tarkin/mem.h
blob: f6e4c726a381dcb383002d7d9546f0dce67db845 (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
27
28
29
30
31
32
33
#ifndef __MEM_H
#define __MEM_H

#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>


#if defined(DBG_MEMLEAKS)

extern void *dbg_malloc (char *file, int line, char *func, size_t bytes);
extern void *dbg_calloc (char *file, int line, char *func, size_t count,
    size_t bytes);
extern void *dbg_realloc (char *file, int line, char *func, char *what,
    void *mem, size_t bytes);
extern void dbg_free (char *file, int line, char *func, char *what, void *mem);

#define MALLOC(bytes)        dbg_malloc(__FILE__,__LINE__,__FUNCTION__,bytes)
#define CALLOC(count,bytes)  dbg_calloc(__FILE__,__LINE__,__FUNCTION__,count,bytes)
#define FREE(mem)            dbg_free(__FILE__,__LINE__,__FUNCTION__,#mem,mem)
#define REALLOC(mem,bytes)   dbg_realloc(__FILE__,__LINE__,__FUNCTION__,#mem,mem,bytes)

#else

#define MALLOC malloc
#define CALLOC calloc
#define REALLOC realloc
#define FREE free

#endif

#endif