gwnavgeneration/common/generatormemoryheap.h Source File
Go to the documentation of this file.
18 class GeneratorSysAlloc;
22 class GeneratorMemoryHeap :
public MemoryHeap
25 enum HeapType { HeapType_System, HeapType_Tls, HeapType_Magic };
26 static bool InitMemorySystem(GeneratorSysAlloc* sysAlloc, GeneratorSysAlloc::AllocType allocType);
27 static void CleanUpMemorySystem();
28 static bool InitTlsAlloc(ITlsAlloc* tlsAlloc);
29 static void ClearTlsAlloc();
32 GeneratorMemoryHeap(HeapType heapType) : m_heapType(heapType) {}
35 virtual void* Alloc(UPInt size,
const AllocInfo* info = 0);
36 virtual void* Alloc(UPInt size, UPInt align,
const AllocInfo* info = 0);
37 virtual void* Realloc(
void* oldPtr, UPInt newSize);
38 virtual void* ReallocAutoHeap(
void* oldPtr, UPInt newSize);
39 virtual void Free(
void* ptr);
40 virtual void* AllocSysDirect(UPInt size);
41 virtual void FreeSysDirect(
void* ptr, UPInt size);
42 virtual void* AllocAutoHeap(
const void* thisPtr, UPInt size, UPInt align,
const AllocInfo* info = 0);
43 virtual void* AllocAutoHeap(
const void* thisPtr, UPInt size,
const AllocInfo* info = 0);
44 virtual MemoryHeap* GetAllocHeap(
const void* thisPtr);
47 virtual void* InternalAlloc(UPInt size,
const AllocInfo* info) = 0;
48 virtual void* InternalRealloc(
void* oldPtr, UPInt newSize) = 0;
49 virtual void InternalFree(
void* ptr) = 0;
52 virtual void DestroyArena(UPInt ) {}
53 virtual bool ArenaIsEmpty(UPInt ) {
return true; }
54 virtual MemoryHeap* CreateHeap(
const char* name,
const HeapDesc& desc) { KY_UNUSED2(name, desc);
return this; }
55 virtual void SetLimitHandler(LimitHandler* ) {}
56 virtual void SetLimit(UPInt ) {}
57 virtual void AddRef() {}
58 virtual void Release() {}
59 virtual UPInt GetUsableSize(
const void* ptr) { KY_UNUSED(ptr);
return 0; }
60 virtual UPInt GetFootprint()
const {
return 0; }
61 virtual UPInt GetTotalFootprint()
const {
return 0; }
62 virtual UPInt GetUsedSpace()
const {
return 0; }
63 virtual UPInt GetTotalUsedSpace()
const {
return 0; }
64 virtual void GetRootStats(RootStats* ) {}
65 virtual void VisitMem(Heap::MemVisitor* ,
unsigned ) {}
66 virtual void VisitRootSegments(Heap::SegVisitor* ) {}
67 virtual void VisitHeapSegments(Heap::SegVisitor* )
const {}
68 virtual void SetTracer(HeapTracer* ) {}
71 virtual void destroyItself() {}
72 virtual void ultimateCheck() {}
73 virtual void releaseCachedMem() {}
74 virtual bool dumpMemoryLeaks() {
return false; }
75 virtual void checkIntegrity()
const {}
76 virtual void getUserDebugStats(RootStats* )
const {}
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17