Revert "Fix destroyHardwareResources"
This reverts commit bac48c4d0c6f71f67074a430cd365ea2e15924b8.
Change-Id: Iba8b729d5e91ca31976fc2bdf9c1dd5fdb19de9a
diff --git a/core/java/android/view/ThreadedRenderer.java b/core/java/android/view/ThreadedRenderer.java
index fa4564e..57d1beb 100644
--- a/core/java/android/view/ThreadedRenderer.java
+++ b/core/java/android/view/ThreadedRenderer.java
@@ -127,8 +127,6 @@
@Override
void destroyHardwareResources(View view) {
destroyResources(view);
- // mRootNode belongs to us and not a view, so we need to destroy it
- mRootNode.destroyDisplayListData();
nDestroyHardwareResources(mNativeProxy);
}
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 706fb1c..f1a0913 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -13625,7 +13625,9 @@
* @hide
*/
protected void destroyHardwareResources() {
- resetDisplayList();
+ // Intentionally empty. RenderNode's lifecycle is now fully managed
+ // by the hardware renderer.
+ // However some subclasses (eg, WebView, TextureView) still need this signal
}
/**
diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp
index 3cf625f..89105ea 100644
--- a/libs/hwui/RenderNode.cpp
+++ b/libs/hwui/RenderNode.cpp
@@ -211,8 +211,7 @@
// This will also release the hardware layer if we have one as
// isRenderable() will return false, thus causing pushLayerUpdate
// to recycle the hardware layer
- LOG_ALWAYS_FATAL_IF(mStagingDisplayListData || (mDisplayListData && !mNeedsDisplayListDataSync),
- "View.destroyHardwareResources wasn't called!");
+ setStagingDisplayList(NULL);
break;
}
@@ -261,11 +260,7 @@
mNeedsDisplayListDataSync = false;
// Do a push pass on the old tree to handle freeing DisplayListData
// that are no longer used
- TreeInfo::TraversalMode mode = TreeInfo::MODE_MAYBE_DETACHING;
- if (CC_UNLIKELY(info.mode == TreeInfo::MODE_DESTROY_RESOURCES)) {
- mode = TreeInfo::MODE_DESTROY_RESOURCES;
- }
- TreeInfo oldTreeInfo(mode, info);
+ TreeInfo oldTreeInfo(TreeInfo::MODE_MAYBE_DETACHING, info);
prepareSubTree(oldTreeInfo, mDisplayListData);
delete mDisplayListData;
mDisplayListData = mStagingDisplayListData;