| Index: mojo/services/native_viewport/platform_viewport_android.cc
|
| diff --git a/mojo/services/native_viewport/platform_viewport_android.cc b/mojo/services/native_viewport/platform_viewport_android.cc
|
| index ee5d7dd72f1d78136d56f3e1e154fee826e47a8e..124919a4b5258560cdc8049d9802ee2072c94a75 100644
|
| --- a/mojo/services/native_viewport/platform_viewport_android.cc
|
| +++ b/mojo/services/native_viewport/platform_viewport_android.cc
|
| @@ -61,6 +61,11 @@ PlatformViewportAndroid::PlatformViewportAndroid(Delegate* delegate)
|
| PlatformViewportAndroid::~PlatformViewportAndroid() {
|
| if (window_)
|
| ReleaseWindow();
|
| + if (!java_platform_viewport_android_.is_empty()) {
|
| + JNIEnv* env = base::android::AttachCurrentThread();
|
| + Java_PlatformViewportAndroid_detach(
|
| + env, java_platform_viewport_android_.get(env).obj());
|
| + }
|
| }
|
|
|
| void PlatformViewportAndroid::Destroy(JNIEnv* env, jobject obj) {
|
| @@ -161,10 +166,10 @@ bool PlatformViewportAndroid::KeyEvent(JNIEnv* env,
|
|
|
| void PlatformViewportAndroid::Init(const gfx::Rect& bounds) {
|
| JNIEnv* env = base::android::AttachCurrentThread();
|
| - Java_PlatformViewportAndroid_createForActivity(
|
| - env,
|
| - base::android::GetApplicationContext(),
|
| - reinterpret_cast<jlong>(this));
|
| + java_platform_viewport_android_ = JavaObjectWeakGlobalRef(
|
| + env, Java_PlatformViewportAndroid_createForActivity(
|
| + env, base::android::GetApplicationContext(),
|
| + reinterpret_cast<jlong>(this)).obj());
|
| }
|
|
|
| void PlatformViewportAndroid::Show() {
|
|
|