summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2012-05-18 17:02:33 -0700
committerChris Craik <ccraik@google.com>2012-05-18 17:02:33 -0700
commit48605bf1f6bc77a1f037f23285baf7706f45d198 (patch)
tree0118a279c6af10fed342b9816c35f761a117bc46 /Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp
parentd423988553ea721896b4ac1d3720ed04332ebbb3 (diff)
downloadexternal_webkit-48605bf1f6bc77a1f037f23285baf7706f45d198.zip
external_webkit-48605bf1f6bc77a1f037f23285baf7706f45d198.tar.gz
external_webkit-48605bf1f6bc77a1f037f23285baf7706f45d198.tar.bz2
Remove paint tile operations for stale painters
bug:6516612 also adds ClassTracker to several classes Change-Id: I9a503084240d4935fba300a3256d266a2982dcc0
Diffstat (limited to 'Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp')
-rw-r--r--Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp b/Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp
index 5abca02..724bf89 100644
--- a/Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp
+++ b/Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp
@@ -69,6 +69,7 @@ void SurfaceCollectionManager::swap()
if (m_drawingCollection) {
ALOGV("destroying drawing collection %p", m_drawingCollection);
m_drawingCollection->addFrameworkInvals();
+ m_drawingCollection->removePainterOperations();
SkSafeUnref(m_drawingCollection);
}
@@ -93,6 +94,12 @@ void SurfaceCollectionManager::swap()
// clear all of the content in the three collections held by the collection manager
void SurfaceCollectionManager::clearCollections()
{
+ // remove all painting operations, since they're no longer relevant
+ if (m_drawingCollection)
+ m_drawingCollection->removePainterOperations();
+ if (m_paintingCollection)
+ m_paintingCollection->removePainterOperations();
+
SkSafeUnref(m_drawingCollection);
m_drawingCollection = 0;
SkSafeUnref(m_paintingCollection);