Index: core/include/fxcrt/fx_memory.h |
diff --git a/core/include/fxcrt/fx_memory.h b/core/include/fxcrt/fx_memory.h |
index 8806bba7dde6ede6336b91c480efe11e9f63318a..cb71c04fcaf9e72789fed460d44664e692e9c890 100644 |
--- a/core/include/fxcrt/fx_memory.h |
+++ b/core/include/fxcrt/fx_memory.h |
@@ -65,9 +65,12 @@ public: |
} |
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) \ |
@@ -88,5 +91,44 @@ public: |
virtual ~CFX_DestructObject() {} |
}; |
-#endif // __cplusplus |
-#endif // _FX_MEMORY_H_ |
+class CFX_GrowOnlyPool : public CFX_Object |
+{ |
+public: |
+ |
+ CFX_GrowOnlyPool(size_t trunk_size = 16384); |
+ |
+ ~CFX_GrowOnlyPool(); |
+ |
+ void SetTrunkSize(size_t trunk_size) |
+ { |
+ m_TrunkSize = trunk_size; |
+ } |
+ |
+ void* AllocDebug(size_t size, FX_LPCSTR file, int line) |
+ { |
+ return Alloc(size); |
+ } |
+ |
+ void* Alloc(size_t size); |
+ |
+ void* ReallocDebug(void* p, size_t new_size, FX_LPCSTR file, int line) |
+ { |
+ return NULL; |
+ } |
+ |
+ void* Realloc(void* p, size_t new_size) |
+ { |
+ return NULL; |
+ } |
+ |
+ void Free(void*) {} |
+ |
+ void FreeAll(); |
+private: |
+ |
+ size_t m_TrunkSize; |
+ |
+ void* m_pFirstTrunk; |
+}; |
+#endif |
+#endif |