From 9223ae576ffe543c954e048c325d0dd6cf62a5a1 Mon Sep 17 00:00:00 2001 From: JungJik Lee Date: Mon, 1 Apr 2013 13:59:12 +0900 Subject: [PATCH] [WK2] Recover a loss of dirty region. [Title] [WK2] Recover a loss of dirty region. [Issue#] N_SE-26405 [Problem] TBS can not update the tile due to a loss of dirty region. [Cause] intersecting dirty region with keepRect can cause the loss of dirty resion. [Solution] Remove intersect code and invalidate all dirties. --- Source/WebCore/platform/graphics/TiledBackingStore.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Source/WebCore/platform/graphics/TiledBackingStore.cpp b/Source/WebCore/platform/graphics/TiledBackingStore.cpp index 9dd6cb9..1a7e9c9 100755 --- a/Source/WebCore/platform/graphics/TiledBackingStore.cpp +++ b/Source/WebCore/platform/graphics/TiledBackingStore.cpp @@ -107,10 +107,8 @@ void TiledBackingStore::invalidate(const IntRect& contentsDirtyRect) { IntRect dirtyRect(mapFromContents(contentsDirtyRect)); - // Only iterate on the part of the rect that we know we might have tiles. - IntRect coveredDirtyRect = intersection(dirtyRect, m_keepRect); - Tile::Coordinate topLeft = tileCoordinateForPoint(coveredDirtyRect.location()); - Tile::Coordinate bottomRight = tileCoordinateForPoint(innerBottomRight(coveredDirtyRect)); + Tile::Coordinate topLeft = tileCoordinateForPoint(dirtyRect.location()); + Tile::Coordinate bottomRight = tileCoordinateForPoint(innerBottomRight(dirtyRect)); for (unsigned yCoordinate = topLeft.y(); yCoordinate <= bottomRight.y(); ++yCoordinate) { for (unsigned xCoordinate = topLeft.x(); xCoordinate <= bottomRight.x(); ++xCoordinate) { -- 2.7.4