diff options
author | reveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-06 21:42:52 +0000 |
---|---|---|
committer | reveman@chromium.org <reveman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-06-06 21:42:52 +0000 |
commit | fdfb270bc229a55c2a5042139f03f9d8a5438fef (patch) | |
tree | 602703ce454d4db5abf2d492f71941d888144b04 /cc | |
parent | 81af5491454ead0c262d837cd01db844c580c0e1 (diff) | |
download | chromium_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.cc | 5 |
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()); |