proxy_allocator.cpp 833 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. /*
  2. * Copyright (c) 2012-2015 Daniele Bartolini and individual contributors.
  3. * License: https://github.com/taylor001/crown/blob/master/LICENSE
  4. */
  5. #include "proxy_allocator.h"
  6. #include "error.h"
  7. #include "profiler.h"
  8. namespace crown
  9. {
  10. ProxyAllocator::ProxyAllocator(const char* name, Allocator& allocator)
  11. : _name(name)
  12. , _allocator(allocator)
  13. {
  14. CE_ASSERT(name != NULL, "Name must be != NULL");
  15. }
  16. void* ProxyAllocator::allocate(size_t size, size_t align)
  17. {
  18. void* p = _allocator.allocate(size, align);
  19. ALLOCATE_MEMORY(_name, _allocator.allocated_size(p));
  20. return p;
  21. }
  22. void ProxyAllocator::deallocate(void* data)
  23. {
  24. DEALLOCATE_MEMORY(_name, (data == NULL) ? 0 :_allocator.allocated_size((const void*)data));
  25. _allocator.deallocate(data);
  26. }
  27. const char* ProxyAllocator::name() const
  28. {
  29. return _name;
  30. }
  31. } // namespace crown