Index: core/include/fxcrt/fx_memory.h |
diff --git a/core/include/fxcrt/fx_memory.h b/core/include/fxcrt/fx_memory.h |
index 15dc7da8cfcf42f4862f5afff5eb70cda7f8be3f..7884d6b11d76f0da5b5d35d3f67a5c457836e807 100644 |
--- a/core/include/fxcrt/fx_memory.h |
+++ b/core/include/fxcrt/fx_memory.h |
@@ -10,6 +10,7 @@ |
#include "fx_system.h" |
#ifdef __cplusplus |
+#include <new> |
extern "C" { |
#endif |
#define FX_Alloc(type, size) (type*)calloc(size, sizeof(type)) |
@@ -22,76 +23,18 @@ void* FXMEM_DefaultRealloc(void* pointer, size_t new_size, int flags); |
void FXMEM_DefaultFree(void* pointer, int flags); |
#ifdef __cplusplus |
} |
-#endif |
-#ifdef __cplusplus |
-class CFX_Object |
-{ |
-public: |
- void* operator new (size_t size, FX_LPCSTR file, int line) |
- { |
- return malloc(size); |
- } |
- void operator delete (void* p, FX_LPCSTR file, int line) |
- { |
- free(p); |
- } |
- void* operator new (size_t size) |
- { |
- return malloc(size); |
- } |
- void operator delete (void* p) |
- { |
- free(p); |
- } |
- void* operator new[] (size_t size, FX_LPCSTR file, int line) |
- { |
- return malloc(size); |
- } |
- void operator delete[] (void* p, FX_LPCSTR file, int line) |
- { |
- free(p); |
- } |
- void* operator new[] (size_t size) |
- { |
- return malloc(size); |
- } |
- void operator delete[] (void* p) |
- { |
- free(p); |
- } |
- void* operator new (size_t, void* buf) |
- { |
- return buf; |
- } |
- void operator delete (void*, void*) {} |
-}; |
-#endif |
-#ifdef __cplusplus |
-#if defined(_DEBUG) |
-#define FX_NEW new(__FILE__, __LINE__) |
-#else |
-#define FX_NEW new |
-#endif |
-#define FX_NEW_VECTOR(Pointer, Class, Count) \ |
- { \ |
- Pointer = FX_Alloc(Class, Count); \ |
- if (Pointer) { \ |
- for (int i = 0; i < (Count); i ++) new (Pointer + i) Class; \ |
- } \ |
- } |
-#define FX_DELETE_VECTOR(Pointer, Class, Count) \ |
- { \ |
- for (int i = 0; i < (Count); i ++) Pointer[i].~Class(); \ |
- FX_Free(Pointer); \ |
- } |
-class CFX_DestructObject : public CFX_Object |
+#define FX_NEW new(std::nothrow) |
+#define FX_NEW_VECTOR(Pointer, Class, Count) (Pointer = FX_NEW Class[Count]) |
+#define FX_DELETE_VECTOR(Pointer, Class, Count) delete[] Pointer |
+ |
+class CFX_DestructObject |
{ |
public: |
virtual ~CFX_DestructObject() {} |
}; |
-class CFX_GrowOnlyPool : public CFX_Object |
+class CFX_GrowOnlyPool |
{ |
public: |