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 LgiFunc bool LgiCheckHeap();
00020 LgiFunc bool LgiCanReadMemory(void *p, int Len = 1);
00021
00022 #if 0 // def MEMORY_DEBUG
00023
00024 LgiFunc void LgiDumpHeapInfo();
00025
00026 LgiFunc char *_vmem_file;
00027 LgiFunc int _vmem_line;
00028
00029 void *operator new(unsigned size, char *file, int line);
00030 void *operator new[](unsigned size, char *file, int line);
00031 void operator delete(void *p);
00032 void operator delete(void *p, char *file, int line);
00033
00034 #define DeleteObj(obj) if (obj) { _vmem_file = __FILE__; _vmem_line = __LINE__; delete obj; ((int*)obj) = 0; }
00035 #define DeleteArray(obj) if (obj) { _vmem_file = __FILE__; _vmem_line = __LINE__; delete [] obj ; ((int*)obj) = 0; }
00036
00037 #else
00038
00039
00040
00041 #endif
00042
00043 #endif