public: \
TFORCEINLINE void*
operator new(
size_t s ) {
return ms_oFreeList.New(
sizeof( CLASS_NAME ) ); } \
TFORCEINLINE void*
operator new(
size_t s,
void* where ) {
return where; } \
\
TFORCEINLINE void operator delete(
void* ptr ) { ms_oFreeList.Delete( ptr ); } \
TFORCEINLINE void operator delete(
void* ptr,
void* where ) {
delete ptr; } \
\
static void SetupFreeList(
TINT a_iCapacity,
TINT a_iGrowSize ) \
{ \
ms_oFreeList.SetCapacity( a_iCapacity ); \
ms_oFreeList.SetGrowSize( a_iGrowSize ); \
} \
\
static Toshi::TFreeList ms_oFreeList;
3#define TDECLARE_FREELIST_ALLOCATOR( CLASS_NAME ) \
4public: \
5 TFORCEINLINE void* operator new( size_t s ) { return ms_oFreeList.New( sizeof( CLASS_NAME ) ); } \
6 TFORCEINLINE void* operator new( size_t s, void* where ) { return where; } \
7 \
8 TFORCEINLINE void operator delete( void* ptr ) { ms_oFreeList.Delete( ptr ); } \
9 TFORCEINLINE void operator delete( void* ptr, void* where ) { delete ptr; } \
10 \
11 static void SetupFreeList( TINT a_iCapacity, TINT a_iGrowSize ) \
12 { \
13 ms_oFreeList.SetCapacity( a_iCapacity ); \
14 ms_oFreeList.SetGrowSize( a_iGrowSize ); \
15 } \
16 \
17 static Toshi::TFreeList ms_oFreeList;