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 #include <iostream>
00027 #include <cstdlib>
00028 #include "libMRML/include/CDebuggingMemoryManager.h"
00029
00030
00031
00032 void* operator new(size_t s){
00033 if(gMemManager.isValid()){
00034
00035 #ifdef __memdebug
00036 cout << "MyAlloc" << s << endl;
00037 #endif
00038 return gMemManager.getMem(s);
00039 }
00040 #ifdef __memdebug
00041 cout << "NormalAlloc" << flush;
00042 #endif
00043 return malloc(s);
00044 }
00045
00046
00047
00048
00049 void operator delete(void * inToBeDeleted){
00050 if(inToBeDeleted){
00051 if(gMemManager.freeMem(inToBeDeleted)){
00052 #ifdef __memdebug
00053 cout << "°my["
00054 << inToBeDeleted
00055 << "]"
00056 << flush;
00057 #endif
00058 return;
00059 }else{
00060 #ifdef __memdebug
00061 cout << "§pre["
00062 << inToBeDeleted
00063 << "]"
00064 << flush;
00065 #endif
00066 free(inToBeDeleted);
00067 }
00068 }else{
00069 cout << "!null" << endl;
00070 }
00071 }
00072
00073 void operator delete[](void* inToBeDeleted){
00074 delete(inToBeDeleted);
00075 }
00076
00077 #endif