summaryrefslogtreecommitdiff
path: root/libs/hwui/RenderNode.cpp
diff options
context:
space:
mode:
author John Reck <jreck@google.com> 2015-06-16 10:29:31 -0700
committer John Reck <jreck@google.com> 2015-06-16 10:29:31 -0700
commit3f725f0a5abd23833176bdc26fda964e923e75de (patch)
tree6d043228a90695c33ba52f5a5cab69a80ce1e1c7 /libs/hwui/RenderNode.cpp
parent6138a43ca9b312014bc9f57c1802180dc88188b2 (diff)
Fix null deref
Bug: 21857172 willHaveFunctor was assuming that either mStagingDisplayList or mDisplayList would be non-null but this isn't true. Both can be null in some scenarios (notably after a trimMemory) Change-Id: Ia2915b84cfc907ec9c7cbec54ed6dc26283ec998
Diffstat (limited to 'libs/hwui/RenderNode.cpp')
-rw-r--r--libs/hwui/RenderNode.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/libs/hwui/RenderNode.cpp b/libs/hwui/RenderNode.cpp
index b4cbc3617cc5..fc184913e1c1 100644
--- a/libs/hwui/RenderNode.cpp
+++ b/libs/hwui/RenderNode.cpp
@@ -241,8 +241,12 @@ void RenderNode::prepareTreeImpl(TreeInfo& info, bool functorsNeedLayer) {
animatorDirtyMask = mAnimatorManager.animate(info);
}
- bool willHaveFunctor = info.mode == TreeInfo::MODE_FULL && mStagingDisplayListData
- ? !mStagingDisplayListData->functors.isEmpty() : !mDisplayListData->functors.isEmpty();
+ bool willHaveFunctor = false;
+ if (info.mode == TreeInfo::MODE_FULL && mStagingDisplayListData) {
+ willHaveFunctor = !mStagingDisplayListData->functors.isEmpty();
+ } else if (mDisplayListData) {
+ willHaveFunctor = !mDisplayListData->functors.isEmpty();
+ }
bool childFunctorsNeedLayer = mProperties.prepareForFunctorPresence(
willHaveFunctor, functorsNeedLayer);