diff options
| author | Ellie Hermaszewska <ellieh@nvidia.com> | 2023-04-25 23:21:06 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-25 23:21:06 +0800 |
| commit | 58858297fd73602cfb7507ce23b0b9e3d9ded2be (patch) | |
| tree | 8f43deb6fcae4a953feb1b8d5d5f138717884ee1 /source/core/slang-allocator.h | |
| parent | 7b7c095b37e85ca3a8f55eff1c3d9643d467b8e0 (diff) | |
Bump glm and stb + small neatenings (#2831)
* bump glm to fix c++20 warnings
* bump stb_image to fix c++20 warnings
* Use static_assert for SLANG_COMPILE_TIME_ASSERT
* Remove uses of deprecated is_pod
* Remove bit operations between different enums
Diffstat (limited to 'source/core/slang-allocator.h')
| -rw-r--r-- | source/core/slang-allocator.h | 34 |
1 files changed, 5 insertions, 29 deletions
diff --git a/source/core/slang-allocator.h b/source/core/slang-allocator.h index bc1b880f8..8942f993b 100644 --- a/source/core/slang-allocator.h +++ b/source/core/slang-allocator.h @@ -62,34 +62,6 @@ namespace Slang } }; - // Helper utilties for calling allocators. - template<typename T, int isPOD> - class Initializer; - - template<typename T> - class Initializer<T, 0> - { - public: - static void initialize(T* buffer, Index size) - { - for (Index i = 0; i < size; i++) - new (buffer + i) T(); - } - }; - template<typename T> - class Initializer<T, 1> - { - public: - static void initialize(T* buffer, Index size) - { - SLANG_UNUSED(buffer); - SLANG_UNUSED(size); - // It's pod so no initialization required - //for (int i = 0; i < size; i++) - // new (buffer + i) T; - } - }; - template<typename T, typename TAllocator> class AllocateMethod { @@ -98,7 +70,11 @@ namespace Slang { TAllocator allocator; T* rs = (T*)allocator.allocate(count * sizeof(T)); - Initializer<T, std::is_pod<T>::value>::initialize(rs, count); + if (!std::is_trivially_constructible<T>::value) + { + for (Index i = 0; i < count; i++) + new (rs + i) T(); + } return rs; } static inline void deallocateArray(T* ptr, Index count) |
