Index: cc/layers/layer.cc |
diff --git a/cc/layers/layer.cc b/cc/layers/layer.cc |
index 04fa7f4a4236956fa9657f1ed3ae28b0479c252c..aad3951fad76014f7738db11c453a2fcdb4aa73a 100644 |
--- a/cc/layers/layer.cc |
+++ b/cc/layers/layer.cc |
@@ -472,12 +472,8 @@ void Layer::SetOpacity(float opacity) { |
SetSubtreePropertyChanged(); |
if (layer_tree_host_ && !force_rebuild) { |
PropertyTrees* property_trees = layer_tree_host_->property_trees(); |
- auto effect_id_to_index = |
- property_trees->layer_id_to_effect_node_index.find(id()); |
- if (effect_id_to_index != |
- property_trees->layer_id_to_effect_node_index.end()) { |
- EffectNode* node = |
- property_trees->effect_tree.Node(effect_id_to_index->second); |
+ if (EffectNode* node = |
+ property_trees->effect_tree.FindNodeFromOwningLayerId(id())) { |
node->opacity = opacity; |
node->effect_changed = true; |
property_trees->effect_tree.set_needs_update(true); |
@@ -579,12 +575,9 @@ void Layer::SetPosition(const gfx::PointF& position) { |
SetSubtreePropertyChanged(); |
PropertyTrees* property_trees = layer_tree_host_->property_trees(); |
- if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, |
- id())) { |
- DCHECK_EQ(transform_tree_index(), |
- property_trees->layer_id_to_transform_node_index[id()]); |
- TransformNode* transform_node = |
- property_trees->transform_tree.Node(transform_tree_index()); |
+ if (TransformNode* transform_node = |
+ property_trees->transform_tree.FindNodeFromOwningLayerId(id())) { |
+ DCHECK_EQ(transform_tree_index(), transform_node->id); |
transform_node->update_post_local_transform(position, transform_origin()); |
if (transform_node->sticky_position_constraint_id >= 0) { |
StickyPositionNodeData* sticky_data = |
@@ -632,16 +625,12 @@ void Layer::SetTransform(const gfx::Transform& transform) { |
SetSubtreePropertyChanged(); |
if (layer_tree_host_) { |
PropertyTrees* property_trees = layer_tree_host_->property_trees(); |
- if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, |
- id())) { |
+ if (TransformNode* transform_node = |
+ property_trees->transform_tree.FindNodeFromOwningLayerId(id())) { |
// We need to trigger a rebuild if we could have affected 2d axis |
- // alignment. We'll check to see if transform and inputs_.transform |
- // are axis |
- // align with respect to one another. |
- DCHECK_EQ(transform_tree_index(), |
- property_trees->layer_id_to_transform_node_index[id()]); |
- TransformNode* transform_node = |
- property_trees->transform_tree.Node(transform_tree_index()); |
+ // alignment. We'll check to see if transform and inputs_.transform are |
+ // axis align with respect to one another. |
+ DCHECK_EQ(transform_tree_index(), transform_node->id); |
bool preserves_2d_axis_alignment = |
Are2dAxisAligned(inputs_.transform, transform); |
transform_node->local = transform; |
@@ -673,12 +662,9 @@ void Layer::SetTransformOrigin(const gfx::Point3F& transform_origin) { |
SetSubtreePropertyChanged(); |
PropertyTrees* property_trees = layer_tree_host_->property_trees(); |
- if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, |
- id())) { |
- DCHECK_EQ(transform_tree_index(), |
- property_trees->layer_id_to_transform_node_index[id()]); |
- TransformNode* transform_node = |
- property_trees->transform_tree.Node(transform_tree_index()); |
+ if (TransformNode* transform_node = |
+ property_trees->transform_tree.FindNodeFromOwningLayerId(id())) { |
+ DCHECK_EQ(transform_tree_index(), transform_node->id); |
transform_node->update_pre_local_transform(transform_origin); |
transform_node->update_post_local_transform(position(), transform_origin); |
transform_node->needs_local_transform_update = true; |
@@ -776,12 +762,9 @@ void Layer::SetScrollOffset(const gfx::ScrollOffset& scroll_offset) { |
if (scroll_tree_index() != ScrollTree::kInvalidNodeId && scrollable()) |
property_trees->scroll_tree.SetScrollOffset(id(), scroll_offset); |
- if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, |
- id())) { |
- DCHECK_EQ(transform_tree_index(), |
- property_trees->layer_id_to_transform_node_index[id()]); |
- TransformNode* transform_node = |
- property_trees->transform_tree.Node(transform_tree_index()); |
+ if (TransformNode* transform_node = |
+ property_trees->transform_tree.FindNodeFromOwningLayerId(id())) { |
+ DCHECK_EQ(transform_tree_index(), transform_node->id); |
transform_node->scroll_offset = CurrentScrollOffset(); |
transform_node->needs_local_transform_update = true; |
property_trees->transform_tree.set_needs_update(true); |
@@ -809,12 +792,9 @@ void Layer::SetScrollOffsetFromImplSide( |
if (scroll_tree_index() != ScrollTree::kInvalidNodeId && scrollable()) |
property_trees->scroll_tree.SetScrollOffset(id(), scroll_offset); |
- if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, |
- id())) { |
- DCHECK_EQ(transform_tree_index(), |
- property_trees->layer_id_to_transform_node_index[id()]); |
- TransformNode* transform_node = |
- property_trees->transform_tree.Node(transform_tree_index()); |
+ if (TransformNode* transform_node = |
+ property_trees->transform_tree.FindNodeFromOwningLayerId(id())) { |
+ DCHECK_EQ(transform_tree_index(), transform_node->id); |
transform_node->scroll_offset = CurrentScrollOffset(); |
transform_node->needs_local_transform_update = true; |
property_trees->transform_tree.set_needs_update(true); |
@@ -1347,21 +1327,13 @@ void Layer::OnIsAnimatingChanged(const PropertyAnimationState& mask, |
DCHECK(layer_tree_host_); |
PropertyTrees* property_trees = layer_tree_host_->property_trees(); |
- TransformNode* transform_node = nullptr; |
- if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::TRANSFORM, |
- id())) { |
- DCHECK_EQ(transform_tree_index(), |
- property_trees->layer_id_to_transform_node_index[id()]); |
- transform_node = |
- property_trees->transform_tree.Node(transform_tree_index()); |
- } |
+ TransformNode* transform_node = |
+ property_trees->transform_tree.FindNodeFromOwningLayerId(id()); |
+ DCHECK(!transform_node || transform_node->id == transform_tree_index()); |
- EffectNode* effect_node = nullptr; |
- if (property_trees->IsInIdToIndexMap(PropertyTrees::TreeType::EFFECT, id())) { |
- DCHECK_EQ(effect_tree_index(), |
- property_trees->layer_id_to_effect_node_index[id()]); |
- effect_node = property_trees->effect_tree.Node(effect_tree_index()); |
- } |
+ EffectNode* effect_node = |
+ property_trees->effect_tree.FindNodeFromOwningLayerId(id()); |
+ DCHECK(!effect_node || effect_node->id == effect_tree_index()); |
for (int property = TargetProperty::FIRST_TARGET_PROPERTY; |
property <= TargetProperty::LAST_TARGET_PROPERTY; ++property) { |