diff options
author | Chris Craik <ccraik@google.com> | 2012-05-18 17:02:33 -0700 |
---|---|---|
committer | Chris Craik <ccraik@google.com> | 2012-05-18 17:02:33 -0700 |
commit | 48605bf1f6bc77a1f037f23285baf7706f45d198 (patch) | |
tree | 0118a279c6af10fed342b9816c35f761a117bc46 /Source/WebCore/platform/graphics/android/rendering/SurfaceCollectionManager.cpp | |
parent | d423988553ea721896b4ac1d3720ed04332ebbb3 (diff) | |
download | external_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.cpp | 7 |
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); |