diff options
author | Nicolas Roard <nicolas@android.com> | 2011-01-30 17:24:13 -0800 |
---|---|---|
committer | Nicolas Roard <nicolas@android.com> | 2011-01-30 17:24:13 -0800 |
commit | 8ffb52a0a92be5cf8f035b7db75f45b5522c97ef (patch) | |
tree | 7648d7c1b4396f1ca2c59ceed52604e333696bd1 /WebCore/platform/graphics/android | |
parent | da44133fe92ec11fa6b904c498e7e5cd23a43cbf (diff) | |
download | external_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.cpp | 2 | ||||
-rw-r--r-- | WebCore/platform/graphics/android/TilesManager.cpp | 4 |
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"); |