diff options
Diffstat (limited to 'source/blender/blenkernel/intern/sound.c')
-rw-r--r-- | source/blender/blenkernel/intern/sound.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/sound.c b/source/blender/blenkernel/intern/sound.c index aba5a0ed516..029fea5c300 100644 --- a/source/blender/blenkernel/intern/sound.c +++ b/source/blender/blenkernel/intern/sound.c @@ -524,12 +524,18 @@ void BKE_sound_destroy_scene(Scene *scene) if (scene->sound_scrub_handle) { AUD_Handle_stop(scene->sound_scrub_handle); } - if (scene->sound_scene) { - AUD_Sequence_free(scene->sound_scene); - } if (scene->speaker_handles) { + void *handle; + + while ((handle = AUD_getSet(scene->speaker_handles))) { + AUD_Sequence_remove(scene->sound_scene, handle); + } + AUD_destroySet(scene->speaker_handles); } + if (scene->sound_scene) { + AUD_Sequence_free(scene->sound_scene); + } } void BKE_sound_reset_scene_specs(Scene *scene) |