From 3c122b0bef6f718f2a55e0b27f712e7accf89376 Mon Sep 17 00:00:00 2001 From: Chris Robinson Date: Sun, 31 May 2009 11:54:49 -0700 Subject: Set an error if effect creation fails --- OpenAL32/alAuxEffectSlot.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'OpenAL32/alAuxEffectSlot.c') diff --git a/OpenAL32/alAuxEffectSlot.c b/OpenAL32/alAuxEffectSlot.c index 62d153c1..f606a099 100644 --- a/OpenAL32/alAuxEffectSlot.c +++ b/OpenAL32/alAuxEffectSlot.c @@ -471,9 +471,22 @@ static ALvoid InitializeEffect(ALCcontext *Context, ALeffectslot *ALEffectSlot, { if((!effect) || (effect->type != ALEffectSlot->effect.type)) { + ALeffectState *NewState = NULL; + if(effect) + { + if(effect->type == AL_EFFECT_EAXREVERB) + NewState = EAXVerbCreate(Context); + else if(effect->type == AL_EFFECT_REVERB) + NewState = VerbCreate(Context); + else if(effect->type == AL_EFFECT_ECHO) + NewState = EchoCreate(Context); + /* No new state? An error occured.. */ + if(!NewState) + return; + } if(ALEffectSlot->EffectState) ALEffect_Destroy(ALEffectSlot->EffectState); - ALEffectSlot->EffectState = NULL; + ALEffectSlot->EffectState = NewState; } if(!effect) { @@ -481,16 +494,6 @@ static ALvoid InitializeEffect(ALCcontext *Context, ALeffectslot *ALEffectSlot, return; } memcpy(&ALEffectSlot->effect, effect, sizeof(*effect)); - - if(!ALEffectSlot->EffectState) - { - if(effect->type == AL_EFFECT_EAXREVERB) - ALEffectSlot->EffectState = EAXVerbCreate(Context); - else if(effect->type == AL_EFFECT_REVERB) - ALEffectSlot->EffectState = VerbCreate(Context); - else if(effect->type == AL_EFFECT_ECHO) - ALEffectSlot->EffectState = EchoCreate(Context); - } ALEffect_Update(ALEffectSlot->EffectState, Context, effect); } -- cgit v1.2.3