summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/graphics/android
diff options
context:
space:
mode:
authorNicolas Roard <nicolas@android.com>2011-01-30 17:24:13 -0800
committerNicolas Roard <nicolas@android.com>2011-01-30 17:24:13 -0800
commit8ffb52a0a92be5cf8f035b7db75f45b5522c97ef (patch)
tree7648d7c1b4396f1ca2c59ceed52604e333696bd1 /WebCore/platform/graphics/android
parentda44133fe92ec11fa6b904c498e7e5cd23a43cbf (diff)
downloadexternal_webkit-8ffb52a0a92be5cf8f035b7db75f45b5522c97ef.zip
external_webkit-8ffb52a0a92be5cf8f035b7db75f45b5522c97ef.tar.gz
external_webkit-8ffb52a0a92be5cf8f035b7db75f45b5522c97ef.tar.bz2
Fix temporary memory leak
bug:3376517 Change-Id: If64b9385bc8e4d915597bd3f27b22c3d23f74a73
Diffstat (limited to 'WebCore/platform/graphics/android')
-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");