From 89e06f36e6c9e62b364d63cc42fa3a9452f7db4c Mon Sep 17 00:00:00 2001 From: Victor Date: Tue, 14 Apr 2015 19:14:54 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D1=83=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D1=81=D1=81=D1=8B=D0=BB=D0=BE=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/com/annimon/everlastingsummer/Lexer.java | 1 + .../annimon/everlastingsummer/ViewActivity.java | 15 ++++++++++++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/com/annimon/everlastingsummer/Lexer.java b/src/com/annimon/everlastingsummer/Lexer.java index adbaff7..a0a576b 100644 --- a/src/com/annimon/everlastingsummer/Lexer.java +++ b/src/com/annimon/everlastingsummer/Lexer.java @@ -86,6 +86,7 @@ public final class Lexer { } tokenize('\0');// EOF addToken(TokenType.EOF, false); + input = null; return this; } diff --git a/src/com/annimon/everlastingsummer/ViewActivity.java b/src/com/annimon/everlastingsummer/ViewActivity.java index c26eca7..365b696 100644 --- a/src/com/annimon/everlastingsummer/ViewActivity.java +++ b/src/com/annimon/everlastingsummer/ViewActivity.java @@ -117,6 +117,7 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch Parser.parse(Lexer.tokenize( IOUtil.readContents(stream) )); Parser.getInstance().next(); + stream = null; } catch (Exception ex) { final String message = "Ошибка при открытии файла " + scriptpath; Logger.log(message, ex); @@ -129,6 +130,8 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch protected void onPause() { stopMusic(NO_FADE); stopSound(NO_FADE); + safeClearImageView(background); + spritesClear(); super.onPause(); } @@ -192,6 +195,9 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch public void spritesClear() { container.removeAllViews(); + for (ImageView iv : spriteInContainer.values()) { + safeClearImageView(iv); + } spriteInContainer.clear(); } @@ -219,8 +225,9 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch public void hideSprite(String whoid) { if (!spriteInContainer.containsKey(whoid)) return; final ImageView img = spriteInContainer.get(whoid); - spriteInContainer.remove(img); container.removeView(img); + spriteInContainer.remove(img); + safeClearImageView(img); } @SuppressLint("RtlHardcoded") @@ -363,6 +370,12 @@ public final class ViewActivity extends Activity implements TouchGesture.OnTouch soundPlayer = null; } + private static void safeClearImageView(ImageView iv) { + if (iv == null) return; + iv.setImageDrawable(null); + iv = null; + } + private final Runnable nextCommandRunnable = new Runnable() { @Override public void run() {