diff options
Diffstat (limited to 'core/effectslot.cpp')
-rw-r--r-- | core/effectslot.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/core/effectslot.cpp b/core/effectslot.cpp index db8aa078..6c80317e 100644 --- a/core/effectslot.cpp +++ b/core/effectslot.cpp @@ -3,7 +3,7 @@ #include "effectslot.h" -#include <stddef.h> +#include <cstddef> #include "almalloc.h" #include "context.h" @@ -14,6 +14,8 @@ EffectSlotArray *EffectSlot::CreatePtrArray(size_t count) noexcept /* Allocate space for twice as many pointers, so the mixer has scratch * space to store a sorted list during mixing. */ - void *ptr{al_calloc(alignof(EffectSlotArray), EffectSlotArray::Sizeof(count*2))}; - return al::construct_at(static_cast<EffectSlotArray*>(ptr), count); + static constexpr auto AlignVal = std::align_val_t{alignof(EffectSlotArray)}; + if(gsl::owner<void*> ptr{::operator new[](EffectSlotArray::Sizeof(count*2), AlignVal)}) + return al::construct_at(static_cast<EffectSlotArray*>(ptr), count); + return nullptr; } |