diff options
| -rw-r--r-- | core/jni/android_hardware_input_InputApplicationHandle.cpp | 5 | ||||
| -rw-r--r-- | core/jni/android_hardware_input_InputWindowHandle.cpp | 7 |
2 files changed, 7 insertions, 5 deletions
diff --git a/core/jni/android_hardware_input_InputApplicationHandle.cpp b/core/jni/android_hardware_input_InputApplicationHandle.cpp index 24d35316ef20..eab4e1d744cf 100644 --- a/core/jni/android_hardware_input_InputApplicationHandle.cpp +++ b/core/jni/android_hardware_input_InputApplicationHandle.cpp @@ -105,10 +105,11 @@ std::shared_ptr<InputApplicationHandle> android_view_InputApplicationHandle_getH jobject android_view_InputApplicationHandle_fromInputApplicationInfo( JNIEnv* env, gui::InputApplicationInfo inputApplicationInfo) { - jobject binderObject = javaObjectForIBinder(env, inputApplicationInfo.token); + ScopedLocalRef<jobject> binderObject(env, + javaObjectForIBinder(env, inputApplicationInfo.token)); ScopedLocalRef<jstring> name(env, env->NewStringUTF(inputApplicationInfo.name.data())); return env->NewObject(gInputApplicationHandleClassInfo.clazz, - gInputApplicationHandleClassInfo.ctor, binderObject, name.get(), + gInputApplicationHandleClassInfo.ctor, binderObject.get(), name.get(), inputApplicationInfo.dispatchingTimeoutMillis); } diff --git a/core/jni/android_hardware_input_InputWindowHandle.cpp b/core/jni/android_hardware_input_InputWindowHandle.cpp index db92310f2a26..484d92820b86 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."); - env->SetObjectField(inputWindowHandle, gInputWindowHandleClassInfo.token, - javaObjectForIBinder(env, windowInfo.token)); + ScopedLocalRef<jobject> token(env, javaObjectForIBinder(env, windowInfo.token)); + env->SetObjectField(inputWindowHandle, gInputWindowHandleClassInfo.token, token.get()); ScopedLocalRef<jstring> name(env, env->NewStringUTF(windowInfo.name.data())); env->SetObjectField(inputWindowHandle, gInputWindowHandleClassInfo.name, name.get()); env->SetIntField(inputWindowHandle, gInputWindowHandleClassInfo.layoutParamsFlags, @@ -317,8 +317,9 @@ 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, - javaObjectForIBinder(env, windowInfo.windowToken)); + windowToken.get()); return inputWindowHandle; } |