aboutsummaryrefslogtreecommitdiffstats
path: root/Alc
diff options
context:
space:
mode:
Diffstat (limited to 'Alc')
-rw-r--r--Alc/alc.cpp18
-rw-r--r--Alc/alcontext.h3
-rw-r--r--Alc/bformatdec.cpp6
3 files changed, 7 insertions, 20 deletions
diff --git a/Alc/alc.cpp b/Alc/alc.cpp
index 7b55f120..1d6d55e0 100644
--- a/Alc/alc.cpp
+++ b/Alc/alc.cpp
@@ -2791,9 +2791,7 @@ static void FreeContext(ALCcontext *context)
ALCdevice_DecRef(context->Device);
context->Device = nullptr;
- //Invalidate context
- memset(context, 0, sizeof(ALCcontext));
- al_free(context);
+ delete context;
}
/* ReleaseContext
@@ -3791,19 +3789,7 @@ ALC_API ALCcontext* ALC_APIENTRY alcCreateContext(ALCdevice *device, const ALCin
ATOMIC_STORE_SEQ(&device->LastError, ALC_NO_ERROR);
- if(device->Type == Playback && DefaultEffect.type != AL_EFFECT_NULL)
- ALContext = static_cast<ALCcontext*>(al_calloc(16,
- sizeof(ALCcontext)+sizeof(ALlistener)+sizeof(ALeffectslot)));
- else
- ALContext = static_cast<ALCcontext*>(al_calloc(16, sizeof(ALCcontext)+sizeof(ALlistener)));
- if(!ALContext)
- {
- almtx_unlock(&device->BackendLock);
-
- alcSetError(device, ALC_OUT_OF_MEMORY);
- ALCdevice_DecRef(device);
- return nullptr;
- }
+ ALContext = new ALCcontext{};
InitRef(&ALContext->ref, 1);
ALContext->DefaultSlot = nullptr;
diff --git a/Alc/alcontext.h b/Alc/alcontext.h
index 16a5e909..f04607a9 100644
--- a/Alc/alcontext.h
+++ b/Alc/alcontext.h
@@ -9,6 +9,7 @@
#include "atomic.h"
#include "vector.h"
#include "threads.h"
+#include "almalloc.h"
#include "alListener.h"
@@ -113,6 +114,8 @@ struct ALCcontext_struct {
ATOMIC(ALCcontext*) next;
ALlistener Listener;
+
+ DEF_NEWDEL(ALCcontext)
};
ALCcontext *GetContextRef(void);
diff --git a/Alc/bformatdec.cpp b/Alc/bformatdec.cpp
index afa25461..6202d7c1 100644
--- a/Alc/bformatdec.cpp
+++ b/Alc/bformatdec.cpp
@@ -164,8 +164,7 @@ struct BFormatDec {
ALsizei NumChannels;
ALboolean DualBand;
- void *operator new(size_t size) { return al_malloc(alignof(BFormatDec), size); }
- void operator delete(void *block) { al_free(block); }
+ DEF_NEWDEL(BFormatDec)
};
BFormatDec *bformatdec_alloc()
@@ -437,8 +436,7 @@ struct AmbiUpsampler {
ALfloat Gains[4][MAX_OUTPUT_CHANNELS][NUM_BANDS];
- void *operator new(size_t size) { return al_malloc(alignof(AmbiUpsampler), size); }
- void operator delete(void *block) { al_free(block); }
+ DEF_NEWDEL(AmbiUpsampler)
};
AmbiUpsampler *ambiup_alloc()