aboutsummaryrefslogtreecommitdiffstats
path: root/Alc/ALc.c
diff options
context:
space:
mode:
Diffstat (limited to 'Alc/ALc.c')
-rw-r--r--Alc/ALc.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/Alc/ALc.c b/Alc/ALc.c
index 07190754..237eb4b7 100644
--- a/Alc/ALc.c
+++ b/Alc/ALc.c
@@ -1214,14 +1214,21 @@ ALCAPI ALCcontext* ALCAPIENTRY alcCreateContext(ALCdevice *device, const ALCint
ALContext->Frequency = device->Frequency;
- free(device->Bs2b);
- device->Bs2b = NULL;
if(device->Bs2bLevel > 0 && device->Bs2bLevel <= 6)
{
- device->Bs2b = calloc(1, sizeof(*device->Bs2b));
+ if(!device->Bs2b)
+ {
+ device->Bs2b = calloc(1, sizeof(*device->Bs2b));
+ bs2b_clear(device->Bs2b);
+ }
bs2b_set_srate(device->Bs2b, device->Frequency);
bs2b_set_level(device->Bs2b, device->Bs2bLevel);
}
+ else
+ {
+ free(device->Bs2b);
+ device->Bs2b = NULL;
+ }
ProcessContext(NULL);
}