Stop sounds before freeing them (miniaudio)

This commit is contained in:
Prince Frizzy 2024-07-15 14:51:56 -04:00
parent ed0b8b177f
commit 1223c1b09c
No known key found for this signature in database
GPG Key ID: 3859C9AA3D65EC54
1 changed files with 3 additions and 0 deletions

View File

@ -471,6 +471,7 @@ void audio_sample_destroy_pending_copies(void) {
pthread_mutex_lock(&sSampleCopyMutex); pthread_mutex_lock(&sSampleCopyMutex);
for (struct ModAudioSampleCopies *node = sSampleCopiesPendingUninitTail; node;) { for (struct ModAudioSampleCopies *node = sSampleCopiesPendingUninitTail; node;) {
struct ModAudioSampleCopies *prev = node->prev; struct ModAudioSampleCopies *prev = node->prev;
ma_sound_stop(&node->sound);
ma_sound_uninit(&node->sound); ma_sound_uninit(&node->sound);
free(node); free(node);
node = prev; node = prev;
@ -484,6 +485,7 @@ static void audio_sample_destroy_copies(struct ModAudio* audio) {
pthread_mutex_lock(&sSampleCopyMutex); pthread_mutex_lock(&sSampleCopyMutex);
for (struct ModAudioSampleCopies* node = audio->sampleCopiesTail; node;) { for (struct ModAudioSampleCopies* node = audio->sampleCopiesTail; node;) {
struct ModAudioSampleCopies* prev = node->prev; struct ModAudioSampleCopies* prev = node->prev;
ma_sound_stop(&node->sound);
ma_sound_uninit(&node->sound); ma_sound_uninit(&node->sound);
free(node); free(node);
node = prev; node = prev;
@ -504,6 +506,7 @@ void audio_sample_destroy(struct ModAudio* audio) {
if (audio->sampleCopiesTail) { if (audio->sampleCopiesTail) {
audio_sample_destroy_copies(audio); audio_sample_destroy_copies(audio);
} }
ma_sound_stop(&audio->sound);
ma_sound_uninit(&audio->sound); ma_sound_uninit(&audio->sound);
dynamic_pool_free(sModAudioPool, audio); dynamic_pool_free(sModAudioPool, audio);
} }