Add temporary functor lifetime logging
bug:6535911
Change-Id: Ida5cc1def7fe1fc314317bbc5df50e1465753deb
diff --git a/core/java/android/webkit/WebViewClassic.java b/core/java/android/webkit/WebViewClassic.java
index 7f43552..74ffbe3 100644
--- a/core/java/android/webkit/WebViewClassic.java
+++ b/core/java/android/webkit/WebViewClassic.java
@@ -2069,6 +2069,11 @@
}
private void destroyImpl() {
+ int drawGLFunction = nativeGetDrawGLFunction(mNativeClass);
+ ViewRootImpl viewRoot = mWebView.getViewRootImpl();
+ Log.d(LOGTAG, String.format("destroyImpl, functor %x, viewroot == null %b, isHWAccel %b",
+ drawGLFunction, (viewRoot == null),
+ mWebView.isHardwareAccelerated()));
mCallbackProxy.blockMessages();
clearHelpers();
if (mListBoxDialog != null) {
@@ -5296,9 +5301,12 @@
updateHwAccelerated();
+ int drawGLFunction = nativeGetDrawGLFunction(mNativeClass);
+ ViewRootImpl viewRoot = mWebView.getViewRootImpl();
+ Log.d(LOGTAG, String.format("destroyImpl, functor %x, viewroot == null %b, isHWAccel %b",
+ drawGLFunction, (viewRoot == null),
+ mWebView.isHardwareAccelerated()));
if (mWebView.isHardwareAccelerated()) {
- int drawGLFunction = nativeGetDrawGLFunction(mNativeClass);
- ViewRootImpl viewRoot = mWebView.getViewRootImpl();
if (drawGLFunction != 0 && viewRoot != null) {
viewRoot.detachFunctor(drawGLFunction);
}
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index 766a199..a6e7862 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -250,6 +250,7 @@
}
void OpenGLRenderer::detachFunctor(Functor* functor) {
+ ALOGD("opengl renderer %p detaching functor %p", this, functor);
mFunctors.remove(functor);
}
@@ -302,7 +303,7 @@
status_t OpenGLRenderer::callDrawGLFunction(Functor* functor, Rect& dirty) {
interrupt();
- detachFunctor(functor);
+ mFunctors.remove(functor);
if (mDirtyClip) {
setScissorFromClip();