From 378e33bb2cae7e475f1cda8c75f71f6232455833 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Fri, 16 Jun 2023 10:05:58 +0200 Subject: [PATCH] Android: potential ANR during onKeyDown/Up SDLActivity may call onNativeKeyDown, while application is quitting --- src/core/android/SDL_android.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/core/android/SDL_android.c b/src/core/android/SDL_android.c index 0188257bdd..8238979c3c 100644 --- a/src/core/android/SDL_android.c +++ b/src/core/android/SDL_android.c @@ -1157,7 +1157,13 @@ JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativeKeyDown)( JNIEnv *env, jclass jcls, jint keycode) { - Android_OnKeyDown(keycode); + SDL_LockMutex(Android_ActivityMutex); + + if (Android_Window) { + Android_OnKeyDown(keycode); + } + + SDL_UnlockMutex(Android_ActivityMutex); } /* Keyup */ @@ -1165,7 +1171,13 @@ JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativeKeyUp)( JNIEnv *env, jclass jcls, jint keycode) { - Android_OnKeyUp(keycode); + SDL_LockMutex(Android_ActivityMutex); + + if (Android_Window) { + Android_OnKeyUp(keycode); + } + + SDL_UnlockMutex(Android_ActivityMutex); } /* Virtual keyboard return key might stop text input */