summaryrefslogtreecommitdiff
path: root/libs/hwui/OpenGLRenderer.cpp
diff options
context:
space:
mode:
author Chris Craik <ccraik@google.com> 2014-01-24 13:22:35 -0800
committer Chris Craik <ccraik@google.com> 2014-01-24 15:01:40 -0800
commitbb615a6ffbc8a051007163916f1ed085d10b5327 (patch)
tree2ba39cf5b57deb8f00ba478de8f904918a51d0de /libs/hwui/OpenGLRenderer.cpp
parent8435cf0d8b9e24715d5b310ed569fda918dcaa46 (diff)
Clear root level reorder lists to prevent accessing stale DisplayLists
bug:12581401 Adds temporary logging which should log/crash earlier on incorrectly reordering hierarchies. Change-Id: Iee00940718c3cc868161e754aff93cd3b2747094
Diffstat (limited to 'libs/hwui/OpenGLRenderer.cpp')
-rw-r--r--libs/hwui/OpenGLRenderer.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp
index 7ee803fa1a9b..741e953e3eba 100644
--- a/libs/hwui/OpenGLRenderer.cpp
+++ b/libs/hwui/OpenGLRenderer.cpp
@@ -1877,6 +1877,7 @@ status_t OpenGLRenderer::drawDisplayList(DisplayList* displayList, Rect& dirty,
if (CC_UNLIKELY(mCaches.drawDeferDisabled)) {
status = startFrame();
ReplayStateStruct replayStruct(*this, dirty, replayFlags);
+ replayStruct.mRoot = displayList;
displayList->replay(replayStruct, 0);
return status | replayStruct.mDrawGlStatus;
}
@@ -1884,6 +1885,7 @@ status_t OpenGLRenderer::drawDisplayList(DisplayList* displayList, Rect& dirty,
bool avoidOverdraw = !mCaches.debugOverdraw && !mCountOverdraw; // shh, don't tell devs!
DeferredDisplayList deferredList(*currentClipRect(), avoidOverdraw);
DeferStateStruct deferStruct(deferredList, *this, replayFlags);
+ deferStruct.mRoot = displayList;
displayList->defer(deferStruct, 0);
flushLayers();