aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Robinson <chris.kcat@gmail.com>2019-08-13 20:33:44 -0700
committerChris Robinson <chris.kcat@gmail.com>2019-08-13 20:33:44 -0700
commit0806a003e2b359b173b84548d8b78a25e8b51ca3 (patch)
tree60fd0c38e32e8a051a643408ff3e6907f5ae8dda
parent91ff01d1ad3c2995266902f41454c04e2b6e5d47 (diff)
Use new/delete for listener properties
-rw-r--r--al/listener.cpp2
-rw-r--r--al/listener.h3
-rw-r--r--alc/alc.cpp4
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;
}