TCDebugNew.h
Go to the documentation of this file.00001
00002
00003
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
00029
00030
00031
00032
00033
00034
00035 #include "TCNew.h"
00036
00037 #include "TCNewEnable.h"
00038 #include "TCNewDisable.h"
00039
00040 #include <stdlib.h>
00041
00042 #if TC_USE_MEM_CHECK
00043
00044 void *operator new(size_t size) TC_NEW_THROW
00045 {
00046 return TC::New::GetInstance()->Allocate(static_cast<TC::uint32>(size), "unknown new", 0);
00047 }
00048 void *operator new[](size_t size) TC_NEW_THROW
00049 {
00050 return TC::New::GetInstance()->Allocate(static_cast<TC::uint32>(size), "unknown new[]", 1);
00051 }
00052 void *operator new(size_t size, const char *fileName, int line) TC_NEW_THROW
00053 {
00054 return TC::New::GetInstance()->Allocate(static_cast<TC::uint32>(size), fileName, line);
00055 }
00056 void *operator new[](size_t size, const char *fileName, int line) TC_NEW_THROW
00057 {
00058 return TC::New::GetInstance()->Allocate(static_cast<TC::uint32>(size), fileName, line);
00059 }
00060
00061 void operator delete(void *p) TC_DEL_THROW
00062 {
00063 if (TC::New::GetInstance())
00064 TC::New::GetInstance()->Free(p);
00065 else
00066 free(p);
00067 }
00068
00069 void operator delete[](void *p) TC_DEL_THROW
00070 {
00071 if (TC::New::GetInstance())
00072 TC::New::GetInstance()->Free(p);
00073 else
00074 free(p);
00075 }
00076 void operator delete(void *p, const char *, int) TC_DEL_THROW
00077 {
00078 if (TC::New::GetInstance())
00079 TC::New::GetInstance()->Free(p);
00080 else
00081 free(p);
00082 }
00083 void operator delete[](void *p, const char *, int) TC_DEL_THROW
00084 {
00085 if (TC::New::GetInstance())
00086 TC::New::GetInstance()->Free(p);
00087 else
00088 free(p);
00089 }
00090
00091 #endif