Avoid unnecessary uses of ExchangeInt/Ptr
This commit is contained in:
@@ -1599,11 +1599,14 @@ void ALCcontext_DeferUpdates(ALCcontext *context)
|
||||
SetMixerFPUMode(&oldMode);
|
||||
|
||||
V0(device->Backend,lock)();
|
||||
if(!ExchangeInt(&context->DeferUpdates, AL_TRUE))
|
||||
if(!context->DeferUpdates)
|
||||
{
|
||||
ALboolean UpdateSources;
|
||||
ALvoice *voice, *voice_end;
|
||||
ALeffectslot **slot, **slot_end;
|
||||
|
||||
context->DeferUpdates = AL_TRUE;
|
||||
|
||||
/* Make sure all pending updates are performed */
|
||||
UpdateSources = ATOMIC_EXCHANGE(ALenum, &context->UpdateSources, AL_FALSE);
|
||||
|
||||
@@ -1649,10 +1652,12 @@ void ALCcontext_ProcessUpdates(ALCcontext *context)
|
||||
ALCdevice *device = context->Device;
|
||||
|
||||
V0(device->Backend,lock)();
|
||||
if(ExchangeInt(&context->DeferUpdates, AL_FALSE))
|
||||
if(context->DeferUpdates)
|
||||
{
|
||||
ALsizei pos;
|
||||
|
||||
context->DeferUpdates = AL_FALSE;
|
||||
|
||||
LockUIntMapRead(&context->SourceMap);
|
||||
for(pos = 0;pos < context->SourceMap.size;pos++)
|
||||
{
|
||||
@@ -1667,7 +1672,8 @@ void ALCcontext_ProcessUpdates(ALCcontext *context)
|
||||
ReadUnlock(&Source->queue_lock);
|
||||
}
|
||||
|
||||
new_state = ExchangeInt(&Source->new_state, AL_NONE);
|
||||
new_state = Source->new_state;
|
||||
Source->new_state = AL_NONE;
|
||||
if(new_state)
|
||||
SetSourceState(Source, context, new_state);
|
||||
}
|
||||
|
||||
+1
-1
@@ -60,7 +60,7 @@ void MidiSynth_Destruct(MidiSynth *self);
|
||||
ALenum MidiSynth_selectSoundfonts(MidiSynth *self, ALCcontext *context, ALsizei count, const ALuint *ids);
|
||||
inline void MidiSynth_setGain(MidiSynth *self, ALfloat gain) { self->Gain = gain; }
|
||||
inline ALfloat MidiSynth_getGain(const MidiSynth *self) { return self->Gain; }
|
||||
inline void MidiSynth_setState(MidiSynth *self, ALenum state) { ExchangeInt(&self->State, state); }
|
||||
inline void MidiSynth_setState(MidiSynth *self, ALenum state) { self->State = state; }
|
||||
inline ALenum MidiSynth_getState(const MidiSynth *self) { return self->State; }
|
||||
void MidiSynth_stop(MidiSynth *self);
|
||||
inline void MidiSynth_reset(MidiSynth *self) { MidiSynth_stop(self); }
|
||||
|
||||
@@ -716,8 +716,10 @@ static ALenum FSynth_selectSoundfonts(FSynth *self, ALCcontext *context, ALsizei
|
||||
else
|
||||
{
|
||||
ERR("Failed to allocate space for %d font IDs!\n", count);
|
||||
fontid = ExchangePtr((XchgPtr*)&self->FontIDs, NULL);
|
||||
count = ExchangeInt(&self->NumFontIDs, 0);
|
||||
fontid = self->FontIDs;
|
||||
count = self->NumFontIDs;
|
||||
self->FontIDs = NULL;
|
||||
self->NumFontIDs = 0;
|
||||
}
|
||||
|
||||
for(i = 0;i < count;i++)
|
||||
|
||||
@@ -360,26 +360,26 @@ ALsoundfont *ALsoundfont_getDefSoundfont(ALCcontext *context)
|
||||
|
||||
void ALsoundfont_deleteSoundfont(ALsoundfont *self, ALCdevice *device)
|
||||
{
|
||||
ALsfpreset **presets;
|
||||
ALsizei num_presets;
|
||||
ALsfpreset **presets = self->Presets;
|
||||
ALsizei num_presets = self->NumPresets;
|
||||
VECTOR(ALbuffer*) buffers;
|
||||
ALsizei i;
|
||||
|
||||
VECTOR_INIT(buffers);
|
||||
presets = ExchangePtr((XchgPtr*)&self->Presets, NULL);
|
||||
num_presets = ExchangeInt(&self->NumPresets, 0);
|
||||
|
||||
self->Presets = NULL;
|
||||
self->NumPresets = 0;
|
||||
|
||||
for(i = 0;i < num_presets;i++)
|
||||
{
|
||||
ALsfpreset *preset = presets[i];
|
||||
ALfontsound **sounds;
|
||||
ALsizei num_sounds;
|
||||
ALfontsound **sounds = preset->Sounds;
|
||||
ALsizei num_sounds = preset->NumSounds;
|
||||
ALboolean deleting;
|
||||
ALsizei j;
|
||||
|
||||
sounds = ExchangePtr((XchgPtr*)&preset->Sounds, NULL);
|
||||
num_sounds = ExchangeInt(&preset->NumSounds, 0);
|
||||
|
||||
preset->Sounds = NULL;
|
||||
preset->NumSounds = 0;
|
||||
DeletePreset(device, preset);
|
||||
preset = NULL;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user