MemoryPool.h 575 B

1234567891011121314151617181920212223242526272829
  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. static void SetRegionSize(size_t size);
  16. static size_t GetRegionSize();
  17. private:
  18. struct Region;
  19. typedef std::list<Region*> RegionList;
  20. Region* AddRegion(size_t size);
  21. RegionList m_Regions;
  22. };
  23. } /* namespace utils */
  24. } /* namespace il2cpp */