From 9527e077b19ddf7e76cf7e3a48bad00a6c97398d Mon Sep 17 00:00:00 2001 From: Lukasz Kozakiewicz Date: Thu, 28 Sep 2017 15:35:31 +0200 Subject: [PATCH] =?UTF-8?q?Android:=20bailout=20in=20ComponentPeerView?= =?UTF-8?q?=E2=80=99s=20callbacks=20if=20underlying=20host=20is=20deleted.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously we saw a crash in onTouchEvent due to host being 0 while the callback was called. Just as a precaution we add this check to other callbacks too. --- .../juce_core/native/java/JuceAppActivity.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/modules/juce_core/native/java/JuceAppActivity.java b/modules/juce_core/native/java/JuceAppActivity.java index 16b3eeabc1..9e934109e5 100644 --- a/modules/juce_core/native/java/JuceAppActivity.java +++ b/modules/juce_core/native/java/JuceAppActivity.java @@ -566,6 +566,9 @@ public class JuceAppActivity extends Activity @Override public void onDraw (Canvas canvas) { + if (host == 0) + return; + handlePaint (host, canvas, paint); } @@ -657,6 +660,9 @@ public class JuceAppActivity extends Activity @Override public boolean onKeyDown (int keyCode, KeyEvent event) { + if (host == 0) + return false; + switch (keyCode) { case KeyEvent.KEYCODE_VOLUME_UP: @@ -679,6 +685,9 @@ public class JuceAppActivity extends Activity @Override public boolean onKeyUp (int keyCode, KeyEvent event) { + if (host == 0) + return false; + handleKeyUp (host, keyCode, event.getUnicodeChar()); return true; } @@ -686,6 +695,9 @@ public class JuceAppActivity extends Activity @Override public boolean onKeyMultiple (int keyCode, int count, KeyEvent event) { + if (host == 0) + return false; + if (keyCode != KeyEvent.KEYCODE_UNKNOWN || event.getAction() != KeyEvent.ACTION_MULTIPLE) return super.onKeyMultiple (keyCode, count, event); @@ -718,6 +730,9 @@ public class JuceAppActivity extends Activity @Override protected void onSizeChanged (int w, int h, int oldw, int oldh) { + if (host == 0) + return; + super.onSizeChanged (w, h, oldw, oldh); viewSizeChanged (host); } @@ -734,6 +749,9 @@ public class JuceAppActivity extends Activity @Override public void onFocusChange (View v, boolean hasFocus) { + if (host == 0) + return; + if (v == this) focusChanged (host, hasFocus); }