Chromium Code Reviews| Index: cc/trees/layer_tree_impl.cc |
| diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc |
| index 4cd9aae75103100b01bf11715f3d23ce8405f9f7..2dd27de4c1f3c58edd567940455982628e97160c 100644 |
| --- a/cc/trees/layer_tree_impl.cc |
| +++ b/cc/trees/layer_tree_impl.cc |
| @@ -544,18 +544,25 @@ LayerImpl* LayerTreeImpl::LayerByElementId(ElementId element_id) const { |
| } |
| void LayerTreeImpl::AddToElementMap(LayerImpl* layer) { |
| - if (!layer->element_id()) |
| + ElementId element_id = layer->element_id(); |
| + if (!element_id) |
| return; |
| TRACE_EVENT2(TRACE_DISABLED_BY_DEFAULT("compositor-worker"), |
| "LayerTreeImpl::AddToElementMap", "element", |
| - layer->element_id().AsValue().release(), "layer_id", |
| - layer->id()); |
| + element_id.AsValue().release(), "layer_id", layer->id()); |
| - element_layers_map_[layer->element_id()] = layer->id(); |
| +#if DCHECK_IS_ON() |
| + LayerImpl* existing_layer = LayerByElementId(element_id); |
| + bool element_id_collision_detected = |
| + existing_layer != nullptr && existing_layer != layer; |
|
ajuma
2017/01/18 14:22:52
existing_layer && existing_layer != layer;
might b
skobes
2017/01/18 16:24:08
Done.
|
| + DCHECK(!element_id_collision_detected); |
| +#endif |
| + |
| + element_layers_map_[element_id] = layer->id(); |
| layer_tree_host_impl_->mutator_host()->RegisterElement( |
| - layer->element_id(), |
| + element_id, |
| IsActiveTree() ? ElementListType::ACTIVE : ElementListType::PENDING); |
| } |