Memory.cpp 746 B

1234567891011121314151617181920212223242526272829303132333435
  1. // SPDX-FileCopyrightText: 2021 Jorrit Rouwe
  2. // SPDX-License-Identifier: MIT
  3. #include <Jolt.h>
  4. #include <Core/Memory.h>
  5. #include <cstdlib>
  6. #include <stdlib.h>
  7. namespace JPH {
  8. void *AlignedAlloc(size_t inSize, size_t inAlignment)
  9. {
  10. #if defined(JPH_PLATFORM_WINDOWS)
  11. // Microsoft doesn't implement C++17 std::aligned_alloc
  12. return _aligned_malloc(inSize, inAlignment);
  13. #elif defined(JPH_PLATFORM_ANDROID)
  14. return memalign(inAlignment, AlignUp(inSize, inAlignment));
  15. #else
  16. return std::aligned_alloc(inAlignment, AlignUp(inSize, inAlignment));
  17. #endif
  18. }
  19. void AlignedFree(void *inBlock)
  20. {
  21. #if defined(JPH_PLATFORM_WINDOWS)
  22. _aligned_free(inBlock);
  23. #elif defined(JPH_PLATFORM_ANDROID)
  24. free(inBlock);
  25. #else
  26. std::free(inBlock);
  27. #endif
  28. }
  29. } // JPH