Add freeing managed assembly memory on reload/unload

This commit is contained in:
Wojtek Figat
2025-05-25 17:39:51 +02:00
parent 8c62f1120f
commit 98e59450f1
2 changed files with 6 additions and 2 deletions

View File

@@ -14,6 +14,9 @@ void ArenaAllocator::Free()
Allocator::Free(page);
page = next;
}
// Unlink
_first = nullptr;
}
void* ArenaAllocator::Allocate(uint64 size, uint64 alignment)
@@ -31,14 +34,14 @@ void* ArenaAllocator::Allocate(uint64 size, uint64 alignment)
page->Memory = Allocator::Allocate(pageSize);
page->Next = _first;
page->Offset = 0;
page->Size = pageSize;
page->Size = (uint32)pageSize;
_first = page;
}
// Allocate within a page
page->Offset = Math::AlignUp(page->Offset, (uint32)alignment);
void* mem = (byte*)page->Memory + page->Offset;
page->Offset += size;
page->Offset += (uint32)size;
return mem;
}

View File

@@ -143,6 +143,7 @@ void MAssembly::Unload(bool isReloading)
#else
_classes.ClearDelete();
#endif
Memory.Free();
Unloaded(this);
}