From 86f14bcb80ed5553836dedfe9b9f9a61390e6fcb Mon Sep 17 00:00:00 2001 From: Gamebuster Date: Sat, 23 Nov 2024 07:14:58 -0500 Subject: [PATCH] Fix memory leak in SoundEngine Resolves https://github.com/gurkenlabs/litiengine/issues/852 --- .../litiengine/sound/SoundEngine.java | 33 ++++++++++--------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/litiengine/src/main/java/de/gurkenlabs/litiengine/sound/SoundEngine.java b/litiengine/src/main/java/de/gurkenlabs/litiengine/sound/SoundEngine.java index 594492dc7..118a4569c 100644 --- a/litiengine/src/main/java/de/gurkenlabs/litiengine/sound/SoundEngine.java +++ b/litiengine/src/main/java/de/gurkenlabs/litiengine/sound/SoundEngine.java @@ -599,24 +599,27 @@ public void terminate() { @Override public void update() { listenerLocation = listenerLocationCallback.apply(listenerLocation); - - Iterator iter = sounds.iterator(); - while (iter.hasNext()) { - SFXPlayback s = iter.next(); - if (s.isPlaying()) { - s.updateLocation(listenerLocation); - } else { - iter.remove(); + { + Iterator iter = sounds.iterator(); + while (iter.hasNext()) { + SFXPlayback s = iter.next(); + if (s.isPlaying()) { + s.updateLocation(listenerLocation); + } else { + iter.remove(); + } } } - Iterator iter2 = allMusic.iterator(); - while (iter.hasNext()) { - MusicPlayback s = iter2.next(); - if (s.isPlaying()) { - s.setMusicVolume(Game.config().sound().getMusicVolume()); - } else { - iter.remove(); + { + Iterator iter2 = allMusic.iterator(); + while (iter2.hasNext()) { + MusicPlayback s = iter2.next(); + if (s.isPlaying()) { + s.setMusicVolume(Game.config().sound().getMusicVolume()); + } else { + iter2.remove(); + } } }