From e67307c816f3fdae2bfba8e9a4410dc015645e91 Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Mon, 11 Feb 2013 18:01:20 -0800 Subject: Prevent crash when setting up a stencil-based clip Bug #8177690 Clear the layers before we setup the stencil to avoid dereferencing the recently deleted rects. Change-Id: I5dce5f965672f276f9490636d85b6018d3ab9422 --- libs/hwui/OpenGLRenderer.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'libs/hwui/OpenGLRenderer.cpp') diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 08e2332df80b..62f268dab291 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -1179,6 +1179,10 @@ void OpenGLRenderer::clearLayerRegions() { delete bounds; } + // We must clear the list of dirty rects before we + // call setupDraw() to prevent stencil setup to do + // the same thing again + mLayers.clear(); setupDraw(false); setupDrawColor(0.0f, 0.0f, 0.0f, 1.0f); @@ -1195,9 +1199,8 @@ void OpenGLRenderer::clearLayerRegions() { for (uint32_t i = 0; i < count; i++) { delete mLayers.itemAt(i); } + mLayers.clear(); } - - mLayers.clear(); } /////////////////////////////////////////////////////////////////////////////// -- cgit v1.2.3-59-g8ed1b