diff options
author | Chris Robinson <chris.kcat@gmail.com> | 2019-08-13 20:33:44 -0700 |
---|---|---|
committer | Chris Robinson <chris.kcat@gmail.com> | 2019-08-13 20:33:44 -0700 |
commit | 0806a003e2b359b173b84548d8b78a25e8b51ca3 (patch) | |
tree | 60fd0c38e32e8a051a643408ff3e6907f5ae8dda | |
parent | 91ff01d1ad3c2995266902f41454c04e2b6e5d47 (diff) |
Use new/delete for listener properties
-rw-r--r-- | al/listener.cpp | 2 | ||||
-rw-r--r-- | al/listener.h | 3 | ||||
-rw-r--r-- | alc/alc.cpp | 4 |
3 files changed, 6 insertions, 3 deletions
diff --git a/al/listener.cpp b/al/listener.cpp index bcee0b08..402d8a27 100644 --- a/al/listener.cpp +++ b/al/listener.cpp @@ -421,7 +421,7 @@ void UpdateListenerProps(ALCcontext *context) /* Get an unused proprty container, or allocate a new one as needed. */ ALlistenerProps *props{context->mFreeListenerProps.load(std::memory_order_acquire)}; if(!props) - props = static_cast<ALlistenerProps*>(al_calloc(16, sizeof(*props))); + props = new ALlistenerProps{}; else { ALlistenerProps *next; diff --git a/al/listener.h b/al/listener.h index 05d93d19..1b440bca 100644 --- a/al/listener.h +++ b/al/listener.h @@ -8,6 +8,7 @@ #include "AL/alc.h" #include "AL/efx.h" +#include "almalloc.h" #include "vecmat.h" enum class DistanceModel; @@ -22,6 +23,8 @@ struct ALlistenerProps { ALfloat MetersPerUnit; std::atomic<ALlistenerProps*> next; + + DEF_NEWDEL(ALlistenerProps) }; struct ALlistener { diff --git a/alc/alc.cpp b/alc/alc.cpp index 6a39ab46..ca7dbb0f 100644 --- a/alc/alc.cpp +++ b/alc/alc.cpp @@ -2386,14 +2386,14 @@ ALCcontext::~ALCcontext() if(lprops) { TRACE("Freed unapplied listener update %p\n", lprops); - al_free(lprops); + delete lprops; } count = 0; lprops = mFreeListenerProps.exchange(nullptr, std::memory_order_acquire); while(lprops) { ALlistenerProps *next{lprops->next.load(std::memory_order_relaxed)}; - al_free(lprops); + delete lprops; lprops = next; ++count; } |