00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef __MEMORY_H
00013 #define __MEMORY_H
00014
00015 #include <string.h>
00016 #include "LgiDefs.h"
00017 #include "LgiOsDefs.h"
00018
00019
00020 LgiFunc int LgiCheckHeap();
00021 LgiFunc bool LgiCanReadMemory(void *p, int Len = 1);
00022 extern void MemorySizeToStr(char *Str, uint Size);
00023
00024 #ifdef MEMORY_DEBUG
00025
00026 LgiFunc void LgiDumpHeapInfo();
00027
00028 LgiFunc char *_vmem_file;
00029 LgiFunc int _vmem_line;
00030
00031 void *operator new(unsigned size, char *file, int line);
00032 void *operator new[](unsigned size, char *file, int line);
00033 void operator delete(void *p);
00034 void operator delete [] (void *p);
00035
00036 #define NEW(obj) new(__FILE__, __LINE__) obj
00037 #define DeleteObj(obj) if (obj) { _vmem_file = __FILE__; _vmem_line = __LINE__; delete obj; obj = 0; }
00038 #define DeleteArray(obj) if (obj) { _vmem_file = __FILE__; _vmem_line = __LINE__; delete [] obj ; obj = 0; }
00039
00040 #else
00041
00042
00043
00044 #endif
00045
00046 #endif