summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/graphics
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/platform/graphics')
-rw-r--r--WebCore/platform/graphics/android/BaseLayerAndroid.cpp2
-rw-r--r--WebCore/platform/graphics/android/TilesManager.cpp4
2 files changed, 5 insertions, 1 deletions
diff --git a/WebCore/platform/graphics/android/BaseLayerAndroid.cpp b/WebCore/platform/graphics/android/BaseLayerAndroid.cpp
index 76e06bf..fe918e6 100644
--- a/WebCore/platform/graphics/android/BaseLayerAndroid.cpp
+++ b/WebCore/platform/graphics/android/BaseLayerAndroid.cpp
@@ -329,6 +329,8 @@ bool BaseLayerAndroid::drawGL(IntRect& viewRect, SkRect& visibleRect,
if (compositedRoot->drawGL(matrix))
ret = true;
+ } else {
+ TilesManager::instance()->cleanupLayersTextures(0);
}
glDisable(GL_SCISSOR_TEST);
diff --git a/WebCore/platform/graphics/android/TilesManager.cpp b/WebCore/platform/graphics/android/TilesManager.cpp
index 9d42058..4b53a54 100644
--- a/WebCore/platform/graphics/android/TilesManager.cpp
+++ b/WebCore/platform/graphics/android/TilesManager.cpp
@@ -279,7 +279,9 @@ void TilesManager::printLayersTextures(const char* s)
void TilesManager::cleanupLayersTextures(LayerAndroid* layer, bool forceCleanup)
{
android::Mutex::Autolock lock(m_texturesLock);
- SkLayer* rootLayer = layer->getRootLayer();
+ SkLayer* rootLayer = 0;
+ if (layer)
+ rootLayer = layer->getRootLayer();
#ifdef DEBUG
if (forceCleanup)
XLOG("FORCE cleanup");