diff options
Diffstat (limited to 'cc')
-rw-r--r-- | cc/resources/picture_layer_tiling_set.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/cc/resources/picture_layer_tiling_set.cc b/cc/resources/picture_layer_tiling_set.cc index 459c046..584fb2d 100644 --- a/cc/resources/picture_layer_tiling_set.cc +++ b/cc/resources/picture_layer_tiling_set.cc @@ -67,10 +67,15 @@ void PictureLayerTilingSet::SyncTilings( continue; if (PictureLayerTiling* this_tiling = TilingAtScale(contents_scale)) { this_tiling->set_resolution(other.tilings_[i]->resolution()); - this_tiling->UpdateTilesToCurrentPile(); + + // These two calls must come before updating the pile, because they may + // destroy tiles that the new pile cannot raster. this_tiling->SetLayerBounds(new_layer_bounds); this_tiling->Invalidate(layer_invalidation); + + this_tiling->UpdateTilesToCurrentPile(); this_tiling->CreateMissingTilesInLiveTilesRect(); + DCHECK(this_tiling->tile_size() == client_->CalculateTileSize(this_tiling->ContentRect().size())); continue; |