summaryrefslogtreecommitdiffstats
path: root/cc
diff options
context:
space:
mode:
authorreveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-06 21:42:52 +0000
committerreveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-06 21:42:52 +0000
commitfdfb270bc229a55c2a5042139f03f9d8a5438fef (patch)
tree602703ce454d4db5abf2d492f71941d888144b04 /cc
parent81af5491454ead0c262d837cd01db844c580c0e1 (diff)
downloadchromium_src-fdfb270bc229a55c2a5042139f03f9d8a5438fef.zip
chromium_src-fdfb270bc229a55c2a5042139f03f9d8a5438fef.tar.gz
chromium_src-fdfb270bc229a55c2a5042139f03f9d8a5438fef.tar.bz2
cc: Fix use of uninitialized tiles.
TileVersion::forced_upload_ needs to be reset before a tile is re-initialized or it will incorrectly be considered ready to draw before rasterization even starts. BUG=246642 NOTRY=true Review URL: https://chromiumcodereview.appspot.com/16439015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204610 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc')
-rw-r--r--cc/resources/tile_manager.cc5
1 files changed, 5 insertions, 0 deletions
diff --git a/cc/resources/tile_manager.cc b/cc/resources/tile_manager.cc
index e134d79..4060146 100644
--- a/cc/resources/tile_manager.cc
+++ b/cc/resources/tile_manager.cc
@@ -543,6 +543,8 @@ void TileManager::AssignGpuMemoryToTiles() {
}
void TileManager::FreeResourcesForTile(Tile* tile) {
+ tile->tile_version().resource_id_ = 0;
+ tile->tile_version().forced_upload_ = false;
if (tile->tile_version().resource_) {
resource_pool_->ReleaseResource(
tile->tile_version().resource_.Pass());
@@ -626,6 +628,8 @@ RasterWorkerPool::RasterTask TileManager::CreateRasterTask(
tile->tile_version().resource_format_);
const Resource* const_resource = resource.get();
+ DCHECK(!tile->tile_version().resource_id_);
+ DCHECK(!tile->tile_version().forced_upload_);
tile->tile_version().resource_id_ = resource->id();
PicturePileImpl::Analysis* analysis = new PicturePileImpl::Analysis;
@@ -713,6 +717,7 @@ void TileManager::OnRasterTaskCompleted(
resource_pool_->ReleaseResource(resource.Pass());
} else {
tile->tile_version().resource_ = resource.Pass();
+ tile->tile_version().forced_upload_ = false;
}
DidFinishTileInitialization(tile.get());