summaryrefslogtreecommitdiffstats
path: root/libs/hwui/RenderNode.cpp
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2014-10-31 14:49:06 -0700
committerJohn Reck <jreck@google.com>2014-10-31 15:30:10 -0700
commit0e89e2b7bcb2c035e8cee77f93120e7c5617f8d2 (patch)
tree8fcd1f768f08fbeb2cd13425a2bf15b7670428f2 /libs/hwui/RenderNode.cpp
parent141823ec6313d9545b8354ea1e3e017a1da3cfa8 (diff)
downloadframeworks_base-0e89e2b7bcb2c035e8cee77f93120e7c5617f8d2.zip
frameworks_base-0e89e2b7bcb2c035e8cee77f93120e7c5617f8d2.tar.gz
frameworks_base-0e89e2b7bcb2c035e8cee77f93120e7c5617f8d2.tar.bz2
Layer changes
Bug: 17208461 * Switch Layer to be VirtualLightRefBase instead of Caches' side-channel ref-counting * Include active layers in gfxinfo dump * Run gfxinfo dump on the correct thread * Dump gfxinfo on Layer creation failure Change-Id: I28d195699e2334518e215ab28c7a17355aee9678
Diffstat (limited to 'libs/hwui/RenderNode.cpp')
-rw-r--r--libs/hwui/RenderNode.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp
index 40cd13e..c9ed9a7 100644
--- a/libs/hwui/RenderNode.cpp
+++ b/libs/hwui/RenderNode.cpp
@@ -87,7 +87,11 @@ RenderNode::RenderNode()
RenderNode::~RenderNode() {
deleteDisplayListData();
delete mStagingDisplayListData;
- LayerRenderer::destroyLayerDeferred(mLayer);
+ if (mLayer) {
+ ALOGW("Memory Warning: Layer %p missed its detachment, held on to for far too long!", mLayer);
+ mLayer->postDecStrong();
+ mLayer = 0;
+ }
}
void RenderNode::setStagingDisplayList(DisplayListData* data) {
@@ -201,6 +205,7 @@ void RenderNode::pushLayerUpdate(TreeInfo& info) {
info.damageAccumulator->peekAtDirty(&dirty);
if (!mLayer) {
+ Caches::getInstance().dumpMemoryUsage();
if (info.errorHandler) {
std::string msg = "Unable to create layer for ";
msg += getName();