diff options
| author | 2014-01-24 13:22:35 -0800 | |
|---|---|---|
| committer | 2014-01-24 15:01:40 -0800 | |
| commit | bb615a6ffbc8a051007163916f1ed085d10b5327 (patch) | |
| tree | 2ba39cf5b57deb8f00ba478de8f904918a51d0de /libs/hwui/OpenGLRenderer.cpp | |
| parent | 8435cf0d8b9e24715d5b310ed569fda918dcaa46 (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.cpp | 2 |
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(); |