7 #include "NewHandler.h"
9 // #define DEBUG_MEMORY_LEAK
11 #ifndef DEBUG_MEMORY_LEAK
17 operator new(size_t size
)
19 // void *p = ::HeapAlloc(::GetProcessHeap(), 0, size);
20 void *p
= ::malloc(size
);
22 throw CNewException();
30 operator delete(void *p
) throw()
35 ::HeapFree(::GetProcessHeap(), 0, p);
43 const int kDebugSize
= 1000000;
44 static void *a
[kDebugSize
];
47 static int numAllocs
= 0;
48 void * __cdecl
operator new(size_t size
)
51 void *p
= HeapAlloc(GetProcessHeap(), 0, size
);
56 if (index
< kDebugSize
)
62 throw CNewException();
63 printf("Alloc %6d, size = %8d\n", numAllocs
, size
);
72 for (int i
= 0; i
< kDebugSize
; i
++)
77 for (int i
= 0; i
< kDebugSize
; i
++)
84 void __cdecl
operator delete(void *p
)
89 for (int i = 0; i < index; i++)
93 HeapFree(GetProcessHeap(), 0, p
);
95 printf("Free %d\n", numAllocs
);
101 int MemErrorVC(size_t)
103 throw CNewException();
106 CNewHandlerSetter::CNewHandlerSetter()
108 // MemErrorOldVCFunction = _set_new_handler(MemErrorVC);
110 CNewHandlerSetter::~CNewHandlerSetter()
112 // _set_new_handler(MemErrorOldVCFunction);