36 lines
803 B
C
36 lines
803 B
C
#ifndef MEMORY
|
|
#define MEMORY
|
|
|
|
#include "string.h"
|
|
#include "debug.h"
|
|
#include <malloc.h>
|
|
|
|
void memInit ();
|
|
void memDone ();
|
|
#define memAlloc(t) malloc(t)
|
|
#define memFree(p,t) free(p)
|
|
#define memRealloc(p,t) realloc(p,t);
|
|
|
|
#ifdef DEBUG
|
|
#define findLoserBegin(ign) int mem_before; \
|
|
int mem_diff; \
|
|
static int mem_errorcount = 0; \
|
|
struct mallinfo mi; \
|
|
mi = mallinfo(); \
|
|
mem_before = mi.uordblks - ign;
|
|
#define findLoserEnd(ign,t) mi = mallinfo(); \
|
|
mem_diff = mi.uordblks - ign - mem_before; \
|
|
if (mem_diff != 0) \
|
|
{ \
|
|
warning ("Memory leak in [%s] of %i", t, mem_diff); \
|
|
mem_errorcount++; \
|
|
if (mem_errorcount >= 1) \
|
|
error ("More than enough leaks."); \
|
|
}
|
|
#else
|
|
#define findLoserBegin(ign) ;
|
|
#define findLoserEnd(ign,t) ;
|
|
#endif
|
|
|
|
#endif
|