summaryrefslogtreecommitdiffstats
path: root/Source/WebCore/platform/graphics/android/BaseTile.cpp
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2011-10-19 14:51:45 -0700
committerChris Craik <ccraik@google.com>2011-10-19 14:56:39 -0700
commit3ef9d5cc655b8274860b8d15441201d3e621baf5 (patch)
treeee8a3303dc301786d07269736558058bfd40e4f8 /Source/WebCore/platform/graphics/android/BaseTile.cpp
parent8cc0fa17a42ae1dec75fe8ab00d5baa75e46499e (diff)
downloadexternal_webkit-3ef9d5cc655b8274860b8d15441201d3e621baf5.zip
external_webkit-3ef9d5cc655b8274860b8d15441201d3e621baf5.tar.gz
external_webkit-3ef9d5cc655b8274860b8d15441201d3e621baf5.tar.bz2
Mark tiles dirty when discarded from transfer queue
bug:5409902 Tiles weren't always marked dirty, and could get out of the transfer queue without being marked dirty. Change-Id: Ia0fe71f00f61d7aede8ca7bc4a389ac417906d36
Diffstat (limited to 'Source/WebCore/platform/graphics/android/BaseTile.cpp')
-rw-r--r--Source/WebCore/platform/graphics/android/BaseTile.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/Source/WebCore/platform/graphics/android/BaseTile.cpp b/Source/WebCore/platform/graphics/android/BaseTile.cpp
index 05b3a3d..f0b0dd2 100644
--- a/Source/WebCore/platform/graphics/android/BaseTile.cpp
+++ b/Source/WebCore/platform/graphics/android/BaseTile.cpp
@@ -510,6 +510,8 @@ void BaseTile::discardBackTexture() {
m_backTexture->release(this);
m_backTexture = 0;
}
+ m_state = Unpainted;
+ m_dirty = true;
}
bool BaseTile::swapTexturesIfNeeded() {
@@ -548,6 +550,7 @@ void BaseTile::backTextureTransferFail() {
// retransferred.
android::AutoMutex lock(m_atomicSync);
m_state = Unpainted;
+ m_dirty = true;
// whether validatePaint is called before or after, it won't do anything
}
@@ -563,9 +566,11 @@ void BaseTile::validatePaint() {
else if (m_state == TransferredUnvalidated)
m_state = ReadyToSwap;
else {
- // shouldn't have just finished painting in any other state, log
XLOG("Note: validated tile %p at %d %d, state wasn't paintingstarted or transferred %d",
this, m_x, m_y, m_state);
+ // failed transferring, in which case mark dirty (since
+ // paintBitmap() may have cleared m_dirty)
+ m_dirty = true;
}
if (m_deferredDirty) {