Revert "Add ScopedLocalRef for javaObjectForIBinder"

This reverts commit 2b4d25be78.

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
This commit is contained in:
Adrian Roos
2022-04-01 09:34:47 +00:00
parent 2b4d25be78
commit c1442691bf
2 changed files with 5 additions and 7 deletions

View File

@@ -105,11 +105,10 @@ std::shared_ptr<InputApplicationHandle> android_view_InputApplicationHandle_getH
jobject android_view_InputApplicationHandle_fromInputApplicationInfo(
JNIEnv* env, gui::InputApplicationInfo inputApplicationInfo) {
ScopedLocalRef<jobject> binderObject(env,
javaObjectForIBinder(env, inputApplicationInfo.token));
jobject binderObject = javaObjectForIBinder(env, inputApplicationInfo.token);
ScopedLocalRef<jstring> 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);
}

View File

@@ -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<jobject> token(env, javaObjectForIBinder(env, windowInfo.token));
env->SetObjectField(inputWindowHandle, gInputWindowHandleClassInfo.token, token.get());
env->SetObjectField(inputWindowHandle, gInputWindowHandleClassInfo.token,
javaObjectForIBinder(env, windowInfo.token));
ScopedLocalRef<jstring> 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<jobject> matrixObj(env, AMatrix_newInstance(env, transformVals));
env->SetObjectField(inputWindowHandle, gInputWindowHandleClassInfo.transform, matrixObj.get());
ScopedLocalRef<jobject> windowToken(env, javaObjectForIBinder(env, windowInfo.windowToken));
env->SetObjectField(inputWindowHandle, gInputWindowHandleClassInfo.windowToken,
windowToken.get());
javaObjectForIBinder(env, windowInfo.windowToken));
return inputWindowHandle;
}