| Index: cc/trees/layer_tree_impl.cc
|
| diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
|
| index 5a67472a2aa03480e0e5d447d6a8137bf14fa6d5..9d658b8b3e57a7471eacecea769a116710ae15fa 100644
|
| --- a/cc/trees/layer_tree_impl.cc
|
| +++ b/cc/trees/layer_tree_impl.cc
|
| @@ -765,29 +765,30 @@ void LayerTreeImpl::ClearViewportLayers() {
|
| }
|
|
|
| #if DCHECK_IS_ON()
|
| -int SanityCheckCopyRequestCounts(LayerImpl* layer) {
|
| - int count = layer->HasCopyRequest() ? 1 : 0;
|
| - for (size_t i = 0; i < layer->children().size(); ++i) {
|
| - count += SanityCheckCopyRequestCounts(layer->child_at(i));
|
| +void SanityCheckCopyRequestCounts(LayerTreeImpl* layer_tree_impl) {
|
| + EffectTree& effect_tree = layer_tree_impl->property_trees()->effect_tree;
|
| + const int effect_tree_size = static_cast<int>(effect_tree.size());
|
| + std::vector<int> copy_requests_count_in_effect_tree(effect_tree_size);
|
| + for (auto* layer : *layer_tree_impl) {
|
| + if (layer->HasCopyRequest()) {
|
| + copy_requests_count_in_effect_tree[layer->effect_tree_index()]++;
|
| + }
|
| }
|
| - if (layer->layer_tree_impl()
|
| - ->property_trees()
|
| - ->effect_tree.Node(layer->effect_tree_index())
|
| - ->owner_id == layer->id()) {
|
| - DCHECK_EQ(count, layer->num_copy_requests_in_target_subtree())
|
| - << ", id: " << layer->id();
|
| - } else {
|
| - DCHECK_LE(count, layer->num_copy_requests_in_target_subtree())
|
| - << ", id: " << layer->id();
|
| + for (int i = effect_tree_size - 1; i >= 0; i--) {
|
| + EffectNode* node = effect_tree.Node(i);
|
| + DCHECK_EQ(node->data.num_copy_requests_in_subtree,
|
| + copy_requests_count_in_effect_tree[i]);
|
| + if (node->parent_id >= 0)
|
| + copy_requests_count_in_effect_tree[node->parent_id] +=
|
| + copy_requests_count_in_effect_tree[i];
|
| }
|
| - return count;
|
| }
|
| #endif
|
|
|
| bool LayerTreeImpl::UpdateDrawProperties(bool update_lcd_text) {
|
| #if DCHECK_IS_ON()
|
| if (root_layer())
|
| - SanityCheckCopyRequestCounts(root_layer());
|
| + SanityCheckCopyRequestCounts(root_layer()->layer_tree_impl());
|
| #endif
|
|
|
| if (!needs_update_draw_properties_)
|
|
|