| Index: cc/picture_layer_tiling.cc
|
| diff --git a/cc/picture_layer_tiling.cc b/cc/picture_layer_tiling.cc
|
| index ca357a10b6d51dae26ed0b085fb604e148046051..5dd2dfef0099d9b51829b8b52522638a87881491 100644
|
| --- a/cc/picture_layer_tiling.cc
|
| +++ b/cc/picture_layer_tiling.cc
|
| @@ -417,6 +417,7 @@ void PictureLayerTiling::UpdateTilePriorities(
|
| TileHandle* tile_handle = &find->second;
|
| Tile* tile = tile_handle->tile();
|
| tile->set_priority(tree, priority);
|
| + tile_handle->UnregisterFromTileManager();
|
| }
|
| last_prioritized_rect_ = inflated_rect;
|
|
|
| @@ -442,6 +443,7 @@ void PictureLayerTiling::UpdateTilePriorities(
|
| continue;
|
| TileHandle* tile_handle = &find->second;
|
| Tile* tile = tile_handle->tile();
|
| + tile_handle->RegisterWithTileManager();
|
|
|
| gfx::Rect tile_bounds =
|
| tiling_data_.TileBounds(iter.index_x(), iter.index_y());
|
| @@ -476,6 +478,7 @@ void PictureLayerTiling::UpdateTilePriorities(
|
| continue;
|
| TileHandle* tile_handle = &find->second;
|
| Tile* tile = tile_handle->tile();
|
| + tile_handle->RegisterWithTileManager();
|
|
|
| gfx::Rect tile_bounds =
|
| tiling_data_.TileBounds(iter.index_x(), iter.index_y());
|
| @@ -543,9 +546,17 @@ scoped_ptr<base::Value> PictureLayerTiling::AsValue() const {
|
| return state.PassAs<base::Value>();
|
| }
|
|
|
| -TileHandle::TileHandle(scoped_refptr<Tile> tile)
|
| - : tile_(tile),
|
| - managed_tile_state_(tile_->tile_manager()->RegisterTile(tile_)) {
|
| +TileHandle::TileHandle(scoped_refptr<Tile> tile) : tile_(tile) {
|
| +}
|
| +
|
| +void TileHandle::RegisterWithTileManager() {
|
| + if (managed_tile_state_.get())
|
| + return;
|
| + managed_tile_state_ = tile_->tile_manager()->RegisterTile(tile_);
|
| +}
|
| +
|
| +void TileHandle::UnregisterFromTileManager() {
|
| + managed_tile_state_ = NULL;
|
| }
|
|
|
| } // namespace cc
|
|
|