Cleanup and fixup Release* functions
This commit is contained in:
@@ -527,10 +527,9 @@ ALvoid ReleaseALAuxiliaryEffectSlots(ALCcontext *Context)
|
||||
Context->EffectSlotList = temp->next;
|
||||
|
||||
// Release effectslot structure
|
||||
if(temp->EffectState)
|
||||
ALEffect_Destroy(temp->EffectState);
|
||||
ALTHUNK_REMOVEENTRY(temp->effectslot);
|
||||
ALEffect_Destroy(temp->EffectState);
|
||||
|
||||
ALTHUNK_REMOVEENTRY(temp->effectslot);
|
||||
memset(temp, 0, sizeof(ALeffectslot));
|
||||
free(temp);
|
||||
}
|
||||
|
||||
+8
-11
@@ -1274,21 +1274,18 @@ static void ConvertDataMULawRear(ALfloat *dst, const ALvoid *src, ALsizei len)
|
||||
*/
|
||||
ALvoid ReleaseALBuffers(ALCdevice *device)
|
||||
{
|
||||
ALbuffer *ALBuffer;
|
||||
ALbuffer *ALBufferTemp;
|
||||
|
||||
ALBuffer = device->BufferList;
|
||||
while(ALBuffer)
|
||||
while(device->BufferList)
|
||||
{
|
||||
ALbuffer *temp = device->BufferList;
|
||||
device->BufferList = temp->next;
|
||||
|
||||
// Release sample data
|
||||
free(ALBuffer->data);
|
||||
free(temp->data);
|
||||
|
||||
// Release Buffer structure
|
||||
ALBufferTemp = ALBuffer;
|
||||
ALBuffer = ALBuffer->next;
|
||||
memset(ALBufferTemp, 0, sizeof(ALbuffer));
|
||||
free(ALBufferTemp);
|
||||
ALTHUNK_REMOVEENTRY(temp->buffer);
|
||||
memset(temp, 0, sizeof(ALbuffer));
|
||||
free(temp);
|
||||
}
|
||||
device->BufferList = NULL;
|
||||
device->BufferCount = 0;
|
||||
}
|
||||
|
||||
+9
-12
@@ -650,21 +650,18 @@ ALvoid AL_APIENTRY alUnmapDatabufferEXT(ALuint uiBuffer)
|
||||
*/
|
||||
ALvoid ReleaseALDatabuffers(ALCdevice *device)
|
||||
{
|
||||
ALdatabuffer *ALBuffer;
|
||||
ALdatabuffer *ALBufferTemp;
|
||||
|
||||
ALBuffer = device->DatabufferList;
|
||||
while(ALBuffer)
|
||||
while(device->DatabufferList)
|
||||
{
|
||||
// Release sample data
|
||||
free(ALBuffer->data);
|
||||
ALdatabuffer *temp = device->DatabufferList;
|
||||
device->DatabufferList = temp->next;
|
||||
|
||||
// Release buffer data
|
||||
free(temp->data);
|
||||
|
||||
// Release Buffer structure
|
||||
ALBufferTemp = ALBuffer;
|
||||
ALBuffer = ALBuffer->next;
|
||||
memset(ALBufferTemp, 0, sizeof(ALdatabuffer));
|
||||
free(ALBufferTemp);
|
||||
ALTHUNK_REMOVEENTRY(temp->databuffer);
|
||||
memset(temp, 0, sizeof(ALdatabuffer));
|
||||
free(temp);
|
||||
}
|
||||
device->DatabufferList = NULL;
|
||||
device->DatabufferCount = 0;
|
||||
}
|
||||
|
||||
+4
-5
@@ -1181,17 +1181,16 @@ ALvoid AL_APIENTRY alGetEffectfv(ALuint effect, ALenum param, ALfloat *pflValues
|
||||
|
||||
ALvoid ReleaseALEffects(ALCdevice *device)
|
||||
{
|
||||
ALeffect *list = device->EffectList;
|
||||
while(list)
|
||||
while(device->EffectList)
|
||||
{
|
||||
ALeffect *temp = list;
|
||||
list = list->next;
|
||||
ALeffect *temp = device->EffectList;
|
||||
device->EffectList = temp->next;
|
||||
|
||||
// Release effect structure
|
||||
ALTHUNK_REMOVEENTRY(temp->effect);
|
||||
memset(temp, 0, sizeof(ALeffect));
|
||||
free(temp);
|
||||
}
|
||||
device->EffectList = NULL;
|
||||
device->EffectCount = 0;
|
||||
}
|
||||
|
||||
|
||||
+4
-5
@@ -423,17 +423,16 @@ ALvoid AL_APIENTRY alGetFilterfv(ALuint filter, ALenum param, ALfloat *pflValues
|
||||
|
||||
ALvoid ReleaseALFilters(ALCdevice *device)
|
||||
{
|
||||
ALfilter *list = device->FilterList;
|
||||
while(list)
|
||||
while(device->FilterList)
|
||||
{
|
||||
ALfilter *temp = list;
|
||||
list = list->next;
|
||||
ALfilter *temp = device->FilterList;
|
||||
device->FilterList = temp->next;
|
||||
|
||||
// Release filter structure
|
||||
ALTHUNK_REMOVEENTRY(temp->filter);
|
||||
memset(temp, 0, sizeof(ALfilter));
|
||||
free(temp);
|
||||
}
|
||||
device->FilterList = NULL;
|
||||
device->FilterCount = 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user