| Index: android_webview/java/src/org/chromium/android_webview/AwGLFunctor.java
|
| diff --git a/android_webview/java/src/org/chromium/android_webview/AwGLFunctor.java b/android_webview/java/src/org/chromium/android_webview/AwGLFunctor.java
|
| index e43b840fbf980e8ebd1a83b5794acca5899a77fc..be319dd1a52467c56e2c3cd70214a46bb1952187 100644
|
| --- a/android_webview/java/src/org/chromium/android_webview/AwGLFunctor.java
|
| +++ b/android_webview/java/src/org/chromium/android_webview/AwGLFunctor.java
|
| @@ -33,7 +33,8 @@ class AwGLFunctor {
|
| }
|
|
|
| private final long mNativeAwGLFunctor;
|
| - private final DestroyRunnable mDestroyRunnable;
|
| + // Same gc-life time as this, but does not reference any members like |mContainerView|.
|
| + private final Object mLifetimeObject;
|
| private final CleanupReference mCleanupReference;
|
| private final AwContents.NativeGLDelegate mNativeGLDelegate;
|
| private final ViewGroup mContainerView;
|
| @@ -41,8 +42,9 @@ class AwGLFunctor {
|
|
|
| public AwGLFunctor(AwContents.NativeGLDelegate nativeGLDelegate, ViewGroup containerView) {
|
| mNativeAwGLFunctor = nativeCreate(this);
|
| - mDestroyRunnable = new DestroyRunnable(mNativeAwGLFunctor);
|
| - mCleanupReference = new CleanupReference(mDestroyRunnable, mDestroyRunnable);
|
| + mLifetimeObject = new Object();
|
| + mCleanupReference =
|
| + new CleanupReference(mLifetimeObject, new DestroyRunnable(mNativeAwGLFunctor));
|
| mNativeGLDelegate = nativeGLDelegate;
|
| mContainerView = containerView;
|
| if (mNativeGLDelegate.supportsDrawGLFunctorReleasedCallback()) {
|
| @@ -67,7 +69,7 @@ class AwGLFunctor {
|
| }
|
|
|
| public Object getNativeLifetimeObject() {
|
| - return mDestroyRunnable;
|
| + return mLifetimeObject;
|
| }
|
|
|
| public boolean requestDrawGLForCanvas(Canvas canvas) {
|
|
|