00001
00002 #ifndef _MYNEW
00003 #define _MYNEW
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #include <iostream>
00029 #include <cstdlib>
00030 #include "libMRML/include/CDebuggingMemoryManager.h"
00031
00032
00033
00034 void* operator new(size_t s){
00035 if(gMemManager.isValid()){
00036
00037 #ifdef __memdebug
00038 cout << "MyAlloc" << s << endl;
00039 #endif
00040 return gMemManager.getMem(s);
00041 }
00042 #ifdef __memdebug
00043 cout << "NormalAlloc" << flush;
00044 #endif
00045 return malloc(s);
00046 }
00047
00048
00049
00050
00051 void operator delete(void * inToBeDeleted){
00052 if(inToBeDeleted){
00053 if(gMemManager.freeMem(inToBeDeleted)){
00054 #ifdef __memdebug
00055 cout << "°my["
00056 << inToBeDeleted
00057 << "]"
00058 << flush;
00059 #endif
00060 return;
00061 }else{
00062 #ifdef __memdebug
00063 cout << "§pre["
00064 << inToBeDeleted
00065 << "]"
00066 << flush;
00067 #endif
00068 free(inToBeDeleted);
00069 }
00070 }else{
00071 cout << "!null" << endl;
00072 }
00073 }
00074
00075 void operator delete[](void* inToBeDeleted){
00076 delete(inToBeDeleted);
00077 }
00078
00079 #endif