summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/graphics/android/TiledPage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'WebCore/platform/graphics/android/TiledPage.cpp')
-rw-r--r--WebCore/platform/graphics/android/TiledPage.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/WebCore/platform/graphics/android/TiledPage.cpp b/WebCore/platform/graphics/android/TiledPage.cpp
index db87224..f52c2f9 100644
--- a/WebCore/platform/graphics/android/TiledPage.cpp
+++ b/WebCore/platform/graphics/android/TiledPage.cpp
@@ -60,7 +60,16 @@ TiledPage::TiledPage(int id, GLWebViewState* state)
}
TiledPage::~TiledPage() {
- deleteAllValues(m_baseTiles);
+ // Stop any pixmap generation
+ if (m_baseTiles.size()) {
+ TilesManager::instance()->removeSetsWithPage(this);
+ }
+ m_glWebViewState = 0;
+ // At this point, we can safely deallocate the BaseTiles, as
+ // there is no more BaseTile painting or scheduled to be painted
+ // by the TextureGenerator, and as we did reset the BaseLayer in GLWebViewState,
+ // in WebView's destructor (so no additional painting can be scheduled)
+ deleteAllValues(m_baseTiles);
}
BaseTile* TiledPage::getBaseTile(int x, int y)
@@ -164,7 +173,6 @@ void TiledPage::prepare(bool goingDown, bool goingLeft, int firstTileX, int firs
nbTilesWidth, nbTilesHeight, firstTileX, firstTileY, this);
TilesManager::instance()->printTextures();
#endif // DEBUG
-
highResSet->reserveTextures();
#ifdef DEBUG