1#ifndef DMMEMORY_H
2#define DMMEMORY_H
3#ifdef __cplusplus
4extern "C" {
5#endif
6
7/************** HEADER FILE INCLUDES *****************************************/
8
9#include "xpl_Types.h"
10#include "dmStringUtil.h"
11
12
13#define DmAllocMem(bufsize) DmAllocMemEx(bufsize,__FILE__,__LINE__)
14#define DmFreeMem(buf) { DmFreeMemEx(buf,__FILE__,__LINE__); (buf) = NULL; }
15
16void * DmAllocMemEx(UINT32 bufsize, CPCHAR szFile, int nLine );
17void DmFreeMemEx(void *ptr, CPCHAR szFile, int nLine);
18void* DmReallocMem( void* ptr, int nSize );
19
20/* Low memory helpers */
21int DmGetMemFailedFlag( void );
22void DmResetMemFailedFlag( void );
23
24#ifdef DM_MEMORY_STATISTICS_ENABLED
25
26#define DM_MEMORY_STATISTICS_WRITE(header)  DmMemoryStatisticsWrite(header)
27void DmMemoryStatisticsWrite(const char* header);
28
29#define DM_MEMORY_STATISTICS_REPORT_LEAKS  DmMemoryStatisticsReportLeaks();
30void DmMemoryStatisticsReportLeaks( void );
31
32#else /*DM_MEMORY_STATISTICS_ENABLED*/
33
34#define DM_MEMORY_STATISTICS_WRITE(header)
35#define DM_MEMORY_STATISTICS_REPORT_LEAKS
36
37#endif /*DM_MEMORY_STATISTICS_ENABLED*/
38
39#ifdef __cplusplus
40}
41#endif
42#endif /* DMMEMORY_H */
43
44