diff options
| author | 2015-10-27 10:04:38 -0700 | |
|---|---|---|
| committer | 2015-10-28 12:20:20 -0700 | |
| commit | 9dea0d53f598d8fa98d9b50899fc9c7559f7a1a1 (patch) | |
| tree | 948831ab00192df553f10f9fad04a16d6b4b554d /libs/hwui/RenderNode.cpp | |
| parent | 5918519f972b4eedfc0e402b96cf8a288446deed (diff) | |
Free DisplayListData for Views with GONE parents
Bug: 22565656
Change-Id: I06060e6ae473482ec79feb891f9123c85706237f
Diffstat (limited to 'libs/hwui/RenderNode.cpp')
| -rw-r--r-- | libs/hwui/RenderNode.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp index 351fbaa86a2a..df85cc61ff9b 100644 --- a/libs/hwui/RenderNode.cpp +++ b/libs/hwui/RenderNode.cpp @@ -79,6 +79,11 @@ void RenderNode::setStagingDisplayList(DisplayList* displayList) { mNeedsDisplayListSync = true; delete mStagingDisplayList; mStagingDisplayList = displayList; + // If mParentCount == 0 we are the sole reference to this RenderNode, + // so immediately free the old display list + if (!mParentCount && !mStagingDisplayList) { + deleteDisplayList(); + } } /** |