From c1442691bfd956cdc5f450d285841eadbe988b73 Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Fri, 1 Apr 2022 09:34:47 +0000 Subject: [PATCH] Revert "Add ScopedLocalRef for javaObjectForIBinder" This reverts commit 2b4d25be789ae2c4148d12fa7aa894bd5ff484d3. Reason for revert: Crashes when the returned ref is a global ref (i.e. for all Java Binders), see b/227719836 Bug: 227719836 Bug: 225287201 Change-Id: I374a09f33821c7404f3d16d3d9e25aebd8eab1b0 --- core/jni/android_hardware_input_InputApplicationHandle.cpp | 5 ++--- core/jni/android_hardware_input_InputWindowHandle.cpp | 7 +++---- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/core/jni/android_hardware_input_InputApplicationHandle.cpp b/core/jni/android_hardware_input_InputApplicationHandle.cpp index eab4e1d744cf0..24d35316ef208 100644 --- a/core/jni/android_hardware_input_InputApplicationHandle.cpp +++ b/core/jni/android_hardware_input_InputApplicationHandle.cpp @@ -105,11 +105,10 @@ std::shared_ptr android_view_InputApplicationHandle_getH jobject android_view_InputApplicationHandle_fromInputApplicationInfo( JNIEnv* env, gui::InputApplicationInfo inputApplicationInfo) { - ScopedLocalRef binderObject(env, - javaObjectForIBinder(env, inputApplicationInfo.token)); + jobject binderObject = javaObjectForIBinder(env, inputApplicationInfo.token); ScopedLocalRef name(env, env->NewStringUTF(inputApplicationInfo.name.data())); return env->NewObject(gInputApplicationHandleClassInfo.clazz, - gInputApplicationHandleClassInfo.ctor, binderObject.get(), name.get(), + gInputApplicationHandleClassInfo.ctor, binderObject, name.get(), inputApplicationInfo.dispatchingTimeoutMillis); } diff --git a/core/jni/android_hardware_input_InputWindowHandle.cpp b/core/jni/android_hardware_input_InputWindowHandle.cpp index 484d92820b862..db92310f2a261 100644 --- a/core/jni/android_hardware_input_InputWindowHandle.cpp +++ b/core/jni/android_hardware_input_InputWindowHandle.cpp @@ -261,8 +261,8 @@ jobject android_view_InputWindowHandle_fromWindowInfo(JNIEnv* env, gui::WindowIn } LOG_ALWAYS_FATAL_IF(inputWindowHandle == nullptr, "Failed to create new InputWindowHandle object."); - ScopedLocalRef token(env, javaObjectForIBinder(env, windowInfo.token)); - env->SetObjectField(inputWindowHandle, gInputWindowHandleClassInfo.token, token.get()); + env->SetObjectField(inputWindowHandle, gInputWindowHandleClassInfo.token, + javaObjectForIBinder(env, windowInfo.token)); ScopedLocalRef name(env, env->NewStringUTF(windowInfo.name.data())); env->SetObjectField(inputWindowHandle, gInputWindowHandleClassInfo.name, name.get()); env->SetIntField(inputWindowHandle, gInputWindowHandleClassInfo.layoutParamsFlags, @@ -317,9 +317,8 @@ jobject android_view_InputWindowHandle_fromWindowInfo(JNIEnv* env, gui::WindowIn ScopedLocalRef matrixObj(env, AMatrix_newInstance(env, transformVals)); env->SetObjectField(inputWindowHandle, gInputWindowHandleClassInfo.transform, matrixObj.get()); - ScopedLocalRef windowToken(env, javaObjectForIBinder(env, windowInfo.windowToken)); env->SetObjectField(inputWindowHandle, gInputWindowHandleClassInfo.windowToken, - windowToken.get()); + javaObjectForIBinder(env, windowInfo.windowToken)); return inputWindowHandle; }