MemoryPool.h 580 B

12345678910111213141516171819202122232425262728293031
  1. #pragma once
  2. #include <list>
  3. namespace il2cpp
  4. {
  5. namespace utils
  6. {
  7. class MemoryPool
  8. {
  9. public:
  10. MemoryPool();
  11. MemoryPool(size_t initialSize);
  12. ~MemoryPool();
  13. void* Malloc(size_t size);
  14. void* Calloc(size_t count, size_t size);
  15. size_t FreeSize();
  16. size_t TotalSize();
  17. static size_t RegionSize();
  18. private:
  19. struct Region;
  20. typedef std::list<Region*> RegionList;
  21. Region* AddRegion(size_t size);
  22. RegionList m_Regions;
  23. };
  24. } /* namespace utils */
  25. } /* namespace il2cpp */