From d0c5dbabd5a8b918b2590514a05da50ff84caf18 Mon Sep 17 00:00:00 2001 From: Prabir Pradhan Date: Thu, 16 Dec 2021 03:22:38 -0800 Subject: [PATCH] Pass JNIEnv explicitly into AInputQueue_fromJava Instead of assuming a JNIEnv*, the method should have the env passed into it, which is the standard practice for native APIs. Bug: 210727635 Test: atest InputQueueTest Change-Id: Iae5fc5bd39c758c530185694751d6d79715ce31b --- core/jni/android_view_InputQueue.cpp | 3 +-- core/jni/include/android_runtime/android_view_InputQueue.h | 2 +- native/android/input.cpp | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/core/jni/android_view_InputQueue.cpp b/core/jni/android_view_InputQueue.cpp index b910d1664ad1..74bbd7b2cb32 100644 --- a/core/jni/android_view_InputQueue.cpp +++ b/core/jni/android_view_InputQueue.cpp @@ -269,8 +269,7 @@ int register_android_view_InputQueue(JNIEnv* env) return RegisterMethodsOrDie(env, kInputQueuePathName, g_methods, NELEM(g_methods)); } -AInputQueue* android_view_InputQueue_getNativePtr(jobject inputQueue) { - JNIEnv* env = AndroidRuntime::getJNIEnv(); +AInputQueue* android_view_InputQueue_getNativePtr(JNIEnv* env, jobject inputQueue) { jlong ptr = env->CallLongMethod(inputQueue, gInputQueueClassInfo.getNativePtr); return reinterpret_cast(ptr); } diff --git a/core/jni/include/android_runtime/android_view_InputQueue.h b/core/jni/include/android_runtime/android_view_InputQueue.h index c1b611cf303e..115e2f8605b0 100644 --- a/core/jni/include/android_runtime/android_view_InputQueue.h +++ b/core/jni/include/android_runtime/android_view_InputQueue.h @@ -80,7 +80,7 @@ private: Vector > mFinishedEvents; }; -extern AInputQueue* android_view_InputQueue_getNativePtr(jobject inputQueue); +extern AInputQueue* android_view_InputQueue_getNativePtr(JNIEnv* env, jobject inputQueue); } // namespace android diff --git a/native/android/input.cpp b/native/android/input.cpp index 4de2c23e62b8..c06c81ed03ec 100644 --- a/native/android/input.cpp +++ b/native/android/input.cpp @@ -330,6 +330,6 @@ void AInputQueue_finishEvent(AInputQueue* queue, AInputEvent* event, int handled iq->finishEvent(e, handled != 0); } -AInputQueue* AInputQueue_fromJava(jobject inputQueue) { - return android::android_view_InputQueue_getNativePtr(inputQueue); +AInputQueue* AInputQueue_fromJava(JNIEnv* env, jobject inputQueue) { + return android::android_view_InputQueue_getNativePtr(env, inputQueue); }