00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #if KEOS_DEBUG_MEMORY_MANAGER && KEOS_DEBUG_MODE
00023
00024 #ifndef KEOS_MEMORYMACROS_H
00025 #define KEOS_MEMORYMACROS_H
00026
00033 inline void* operator new(size_t nSize, const char* strFile, int nLine)
00034 {
00035 return Keos::CMemoryManager::Instance().Allocate(nSize, strFile, nLine, false);
00036 }
00037
00044 inline void* operator new[](size_t nSize, const char* strFile, int nLine)
00045 {
00046 return Keos::CMemoryManager::Instance().Allocate(nSize, strFile, nLine, true);
00047 }
00048
00052 inline void operator delete(void* pPtr)
00053 {
00054 Keos::CMemoryManager::Instance().Free(pPtr, false);
00055 }
00056
00062 inline void operator delete(void* pPtr, const char* strFile, int nLine)
00063 {
00064 Keos::CMemoryManager::Instance().NextDelete(strFile, nLine);
00065 Keos::CMemoryManager::Instance().Free(pPtr, false);
00066 }
00067
00068
00072 inline void operator delete[](void* pPtr)
00073 {
00074 Keos::CMemoryManager::Instance().Free(pPtr, true);
00075 }
00076
00082 inline void operator delete[](void* pPtr, const char* strFile, int nLine)
00083 {
00084 Keos::CMemoryManager::Instance().NextDelete(strFile, nLine);
00085 Keos::CMemoryManager::Instance().Free(pPtr, true);
00086 }
00087
00088 #endif // KEOS_MEMORYMACROS_H
00089
00090
00091 #ifndef new
00092 #define new new(__FILE__, __LINE__)
00093 #define delete Keos::CMemoryManager::Instance().NextDelete(__FILE__, __LINE__), delete
00094 #endif
00095
00096 #endif // KEOS_DEBUG_MEMORY_MANAGER