diff options
| author | 2013-06-17 20:39:45 +0000 | |
|---|---|---|
| committer | 2013-06-17 20:39:45 +0000 | |
| commit | fb5c9050978afad2c1df570a13a6747f438c27f7 (patch) | |
| tree | 5ad303b8842436dccb104e46d19aea14d5617cfb /libs/hwui/OpenGLRenderer.cpp | |
| parent | 61e1ca68fa82e5228b5bfcdad8deecd9383fb183 (diff) | |
| parent | e93482f5eac3df581d57e64c2a771a96aa868585 (diff) | |
Merge "Cancel layer update when a layer is about to be destroyed Bug #9310706"
Diffstat (limited to 'libs/hwui/OpenGLRenderer.cpp')
| -rw-r--r-- | libs/hwui/OpenGLRenderer.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/libs/hwui/OpenGLRenderer.cpp b/libs/hwui/OpenGLRenderer.cpp index 91cc4e04c4f5..5cf029dc4ab5 100644 --- a/libs/hwui/OpenGLRenderer.cpp +++ b/libs/hwui/OpenGLRenderer.cpp @@ -655,6 +655,18 @@ void OpenGLRenderer::pushLayerUpdate(Layer* layer) { } } +void OpenGLRenderer::cancelLayerUpdate(Layer* layer) { + if (layer) { + for (int i = mLayerUpdates.size() - 1; i >= 0; i--) { + if (mLayerUpdates.itemAt(i) == layer) { + mLayerUpdates.removeAt(i); + mCaches.resourceCache.decrementRefcount(layer); + break; + } + } + } +} + void OpenGLRenderer::clearLayerUpdates() { size_t count = mLayerUpdates.size(); if (count > 0) { |