From 560f579d2dac5f99ced3364fbed054bff6b7e17f Mon Sep 17 00:00:00 2001 From: "Raybz@Raybz" Date: Fri, 28 Jun 2013 09:35:04 +0200 Subject: [PATCH] fixed memory leak (ther is still one left who can cause an native crash...) --- .../wyrez/shootingstars/data/AudioDataManager.java | 12 ++++++++++++ .../org/wyrez/shootingstars/states/GameState.java | 1 + 2 files changed, 13 insertions(+) diff --git a/ShootingStars/src/org/wyrez/shootingstars/data/AudioDataManager.java b/ShootingStars/src/org/wyrez/shootingstars/data/AudioDataManager.java index 8e2a0a7..55d1365 100644 --- a/ShootingStars/src/org/wyrez/shootingstars/data/AudioDataManager.java +++ b/ShootingStars/src/org/wyrez/shootingstars/data/AudioDataManager.java @@ -59,6 +59,9 @@ public class AudioDataManager { public boolean initialize(GameSettings settings, MediaPlayer player) { try { this.player = player; + if (settings.getAudioFile() == null) { + settings.setAudioFile(settings.getVideoFile()); + } SampleBuffer samples = SampleHelper.createSampleBuffer( DecoderFactory.create(settings.getAudioFile())); this.samplingRate = samples.samplingRate; @@ -67,6 +70,7 @@ public class AudioDataManager { this.audioProcessorHighBand = new AudioProcessor(samples, HIGH_BAND); return true; } catch (Exception ex) { + ex.printStackTrace(); return false; } } @@ -240,4 +244,12 @@ public class AudioDataManager { lastSpawnDataPollIndex = index; return data; } + + public void cleanup() { + speedData = null; +// movementData = null; + flashData = null; + groundMoveData = null; + spawnData = null; + } } diff --git a/ShootingStars/src/org/wyrez/shootingstars/states/GameState.java b/ShootingStars/src/org/wyrez/shootingstars/states/GameState.java index 59ec0e3..9383650 100644 --- a/ShootingStars/src/org/wyrez/shootingstars/states/GameState.java +++ b/ShootingStars/src/org/wyrez/shootingstars/states/GameState.java @@ -207,6 +207,7 @@ public class GameState extends AbstractAppState implements GameListener, ActionL ground = null; cinema = null; starManager = null; + audioDataManager.cleanup(); } public DirectMediaPlayer getMediaPlayer() {