From dae3676979b53b1b60cd129b3eb31399bb1ed714 Mon Sep 17 00:00:00 2001 From: Flyinghead Date: Thu, 15 Aug 2024 11:58:45 +0200 Subject: [PATCH] android: NPE in NativeGLView when Emulator.currentActivity is null --- .../main/java/com/flycast/emulator/emu/NativeGLView.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/shell/android-studio/flycast/src/main/java/com/flycast/emulator/emu/NativeGLView.java b/shell/android-studio/flycast/src/main/java/com/flycast/emulator/emu/NativeGLView.java index 2a04e13c8..0a928ac7c 100644 --- a/shell/android-studio/flycast/src/main/java/com/flycast/emulator/emu/NativeGLView.java +++ b/shell/android-studio/flycast/src/main/java/com/flycast/emulator/emu/NativeGLView.java @@ -17,6 +17,7 @@ import android.view.View; import android.view.WindowInsets; import android.view.WindowManager; +import com.flycast.emulator.BaseGLActivity; import com.flycast.emulator.Emulator; import com.flycast.emulator.periph.InputDeviceManager; @@ -126,7 +127,9 @@ public class NativeGLView extends SurfaceView implements SurfaceHolder.Callback Log.i("flycast", "NativeGLView.surfaceChanged: " + w + "x" + h); surfaceReady = true; JNIdc.rendinitNative(surfaceHolder.getSurface(), w, h); - Emulator.getCurrentActivity().handleStateChange(false); + BaseGLActivity activity = Emulator.getCurrentActivity(); + if (activity != null) + activity.handleStateChange(false); } @Override @@ -134,7 +137,9 @@ public class NativeGLView extends SurfaceView implements SurfaceHolder.Callback Log.i("flycast", "NativeGLView.surfaceDestroyed"); surfaceReady = false; JNIdc.rendinitNative(null, 0, 0); - Emulator.getCurrentActivity().handleStateChange(true); + BaseGLActivity activity = Emulator.getCurrentActivity(); + if (activity != null) + activity.handleStateChange(true); } public boolean isSurfaceReady() {