13d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef DMMEMORY_H 23d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#define DMMEMORY_H 33d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef __cplusplus 43d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyextern "C" { 53d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 63d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 73d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/************** HEADER FILE INCLUDES *****************************************/ 83d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 93d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "xpl_Types.h" 103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "dmStringUtil.h" 113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#define DmAllocMem(bufsize) DmAllocMemEx(bufsize,__FILE__,__LINE__) 143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#define DmFreeMem(buf) { DmFreeMemEx(buf,__FILE__,__LINE__); (buf) = NULL; } 153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid * DmAllocMemEx(UINT32 bufsize, CPCHAR szFile, int nLine ); 173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid DmFreeMemEx(void *ptr, CPCHAR szFile, int nLine); 183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid* DmReallocMem( void* ptr, int nSize ); 193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Low memory helpers */ 213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyint DmGetMemFailedFlag( void ); 223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid DmResetMemFailedFlag( void ); 233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef DM_MEMORY_STATISTICS_ENABLED 253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#define DM_MEMORY_STATISTICS_WRITE(header) DmMemoryStatisticsWrite(header) 273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid DmMemoryStatisticsWrite(const char* header); 283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#define DM_MEMORY_STATISTICS_REPORT_LEAKS DmMemoryStatisticsReportLeaks(); 303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hambyvoid DmMemoryStatisticsReportLeaks( void ); 313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#else /*DM_MEMORY_STATISTICS_ENABLED*/ 333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#define DM_MEMORY_STATISTICS_WRITE(header) 353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#define DM_MEMORY_STATISTICS_REPORT_LEAKS 363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif /*DM_MEMORY_STATISTICS_ENABLED*/ 383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef __cplusplus 403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby} 413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif /* DMMEMORY_H */ 433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 44