Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Side by Side Diff: cc/trees/tree_synchronizer.cc

Issue 1455023002: cc: Replace Pass() with std::move() in some subdirs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@pass-cc
Patch Set: pass-cc2: . Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « cc/trees/threaded_channel_unittest.cc ('k') | cc/trees/tree_synchronizer_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/tree_synchronizer.h" 5 #include "cc/trees/tree_synchronizer.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "base/containers/hash_tables.h" 9 #include "base/containers/hash_tables.h"
10 #include "base/containers/scoped_ptr_hash_map.h" 10 #include "base/containers/scoped_ptr_hash_map.h"
(...skipping 14 matching lines...) Expand all
25 return; 25 return;
26 26
27 OwnedLayerImplList& children = layer_impl->children(); 27 OwnedLayerImplList& children = layer_impl->children();
28 for (auto& child : children) 28 for (auto& child : children)
29 CollectExistingLayerImplRecursive(old_layers, std::move(child)); 29 CollectExistingLayerImplRecursive(old_layers, std::move(child));
30 30
31 CollectExistingLayerImplRecursive(old_layers, layer_impl->TakeMaskLayer()); 31 CollectExistingLayerImplRecursive(old_layers, layer_impl->TakeMaskLayer());
32 CollectExistingLayerImplRecursive(old_layers, layer_impl->TakeReplicaLayer()); 32 CollectExistingLayerImplRecursive(old_layers, layer_impl->TakeReplicaLayer());
33 33
34 int id = layer_impl->id(); 34 int id = layer_impl->id();
35 old_layers->set(id, layer_impl.Pass()); 35 old_layers->set(id, std::move(layer_impl));
36 } 36 }
37 37
38 template <typename LayerType> 38 template <typename LayerType>
39 scoped_ptr<LayerImpl> SynchronizeTreesInternal( 39 scoped_ptr<LayerImpl> SynchronizeTreesInternal(
40 LayerType* layer_root, 40 LayerType* layer_root,
41 scoped_ptr<LayerImpl> old_layer_impl_root, 41 scoped_ptr<LayerImpl> old_layer_impl_root,
42 LayerTreeImpl* tree_impl) { 42 LayerTreeImpl* tree_impl) {
43 DCHECK(tree_impl); 43 DCHECK(tree_impl);
44 44
45 TRACE_EVENT0("cc", "TreeSynchronizer::SynchronizeTrees"); 45 TRACE_EVENT0("cc", "TreeSynchronizer::SynchronizeTrees");
46 ScopedPtrLayerImplMap old_layers; 46 ScopedPtrLayerImplMap old_layers;
47 RawPtrLayerImplMap new_layers; 47 RawPtrLayerImplMap new_layers;
48 48
49 CollectExistingLayerImplRecursive(&old_layers, old_layer_impl_root.Pass()); 49 CollectExistingLayerImplRecursive(&old_layers,
50 std::move(old_layer_impl_root));
50 51
51 scoped_ptr<LayerImpl> new_tree = SynchronizeTreesRecursive( 52 scoped_ptr<LayerImpl> new_tree = SynchronizeTreesRecursive(
52 &new_layers, &old_layers, layer_root, tree_impl); 53 &new_layers, &old_layers, layer_root, tree_impl);
53 54
54 return new_tree.Pass(); 55 return new_tree;
55 } 56 }
56 57
57 scoped_ptr<LayerImpl> TreeSynchronizer::SynchronizeTrees( 58 scoped_ptr<LayerImpl> TreeSynchronizer::SynchronizeTrees(
58 Layer* layer_root, 59 Layer* layer_root,
59 scoped_ptr<LayerImpl> old_layer_impl_root, 60 scoped_ptr<LayerImpl> old_layer_impl_root,
60 LayerTreeImpl* tree_impl) { 61 LayerTreeImpl* tree_impl) {
61 return SynchronizeTreesInternal( 62 return SynchronizeTreesInternal(layer_root, std::move(old_layer_impl_root),
62 layer_root, old_layer_impl_root.Pass(), tree_impl); 63 tree_impl);
63 } 64 }
64 65
65 scoped_ptr<LayerImpl> TreeSynchronizer::SynchronizeTrees( 66 scoped_ptr<LayerImpl> TreeSynchronizer::SynchronizeTrees(
66 LayerImpl* layer_root, 67 LayerImpl* layer_root,
67 scoped_ptr<LayerImpl> old_layer_impl_root, 68 scoped_ptr<LayerImpl> old_layer_impl_root,
68 LayerTreeImpl* tree_impl) { 69 LayerTreeImpl* tree_impl) {
69 return SynchronizeTreesInternal( 70 return SynchronizeTreesInternal(layer_root, std::move(old_layer_impl_root),
70 layer_root, old_layer_impl_root.Pass(), tree_impl); 71 tree_impl);
71 } 72 }
72 73
73 template <typename LayerType> 74 template <typename LayerType>
74 scoped_ptr<LayerImpl> ReuseOrCreateLayerImpl(RawPtrLayerImplMap* new_layers, 75 scoped_ptr<LayerImpl> ReuseOrCreateLayerImpl(RawPtrLayerImplMap* new_layers,
75 ScopedPtrLayerImplMap* old_layers, 76 ScopedPtrLayerImplMap* old_layers,
76 LayerType* layer, 77 LayerType* layer,
77 LayerTreeImpl* tree_impl) { 78 LayerTreeImpl* tree_impl) {
78 scoped_ptr<LayerImpl> layer_impl = old_layers->take(layer->id()); 79 scoped_ptr<LayerImpl> layer_impl = old_layers->take(layer->id());
79 80
80 if (!layer_impl) 81 if (!layer_impl)
81 layer_impl = layer->CreateLayerImpl(tree_impl); 82 layer_impl = layer->CreateLayerImpl(tree_impl);
82 83
83 (*new_layers)[layer->id()] = layer_impl.get(); 84 (*new_layers)[layer->id()] = layer_impl.get();
84 return layer_impl.Pass(); 85 return layer_impl;
85 } 86 }
86 87
87 template <typename LayerType> 88 template <typename LayerType>
88 scoped_ptr<LayerImpl> SynchronizeTreesRecursiveInternal( 89 scoped_ptr<LayerImpl> SynchronizeTreesRecursiveInternal(
89 RawPtrLayerImplMap* new_layers, 90 RawPtrLayerImplMap* new_layers,
90 ScopedPtrLayerImplMap* old_layers, 91 ScopedPtrLayerImplMap* old_layers,
91 LayerType* layer, 92 LayerType* layer,
92 LayerTreeImpl* tree_impl) { 93 LayerTreeImpl* tree_impl) {
93 if (!layer) 94 if (!layer)
94 return nullptr; 95 return nullptr;
95 96
96 scoped_ptr<LayerImpl> layer_impl = 97 scoped_ptr<LayerImpl> layer_impl =
97 ReuseOrCreateLayerImpl(new_layers, old_layers, layer, tree_impl); 98 ReuseOrCreateLayerImpl(new_layers, old_layers, layer, tree_impl);
98 99
99 layer_impl->ClearChildList(); 100 layer_impl->ClearChildList();
100 for (size_t i = 0; i < layer->children().size(); ++i) { 101 for (size_t i = 0; i < layer->children().size(); ++i) {
101 layer_impl->AddChild(SynchronizeTreesRecursiveInternal( 102 layer_impl->AddChild(SynchronizeTreesRecursiveInternal(
102 new_layers, old_layers, layer->child_at(i), tree_impl)); 103 new_layers, old_layers, layer->child_at(i), tree_impl));
103 } 104 }
104 105
105 layer_impl->SetMaskLayer(SynchronizeTreesRecursiveInternal( 106 layer_impl->SetMaskLayer(SynchronizeTreesRecursiveInternal(
106 new_layers, old_layers, layer->mask_layer(), tree_impl)); 107 new_layers, old_layers, layer->mask_layer(), tree_impl));
107 layer_impl->SetReplicaLayer(SynchronizeTreesRecursiveInternal( 108 layer_impl->SetReplicaLayer(SynchronizeTreesRecursiveInternal(
108 new_layers, old_layers, layer->replica_layer(), tree_impl)); 109 new_layers, old_layers, layer->replica_layer(), tree_impl));
109 110
110 return layer_impl.Pass(); 111 return layer_impl;
111 } 112 }
112 113
113 scoped_ptr<LayerImpl> SynchronizeTreesRecursive( 114 scoped_ptr<LayerImpl> SynchronizeTreesRecursive(
114 RawPtrLayerImplMap* new_layers, 115 RawPtrLayerImplMap* new_layers,
115 ScopedPtrLayerImplMap* old_layers, 116 ScopedPtrLayerImplMap* old_layers,
116 Layer* layer, 117 Layer* layer,
117 LayerTreeImpl* tree_impl) { 118 LayerTreeImpl* tree_impl) {
118 return SynchronizeTreesRecursiveInternal( 119 return SynchronizeTreesRecursiveInternal(
119 new_layers, old_layers, layer, tree_impl); 120 new_layers, old_layers, layer, tree_impl);
120 } 121 }
(...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after
245 #endif 246 #endif
246 } 247 }
247 248
248 void TreeSynchronizer::PushProperties(LayerImpl* layer, LayerImpl* layer_impl) { 249 void TreeSynchronizer::PushProperties(LayerImpl* layer, LayerImpl* layer_impl) {
249 int num_dependents_need_push_properties = 0; 250 int num_dependents_need_push_properties = 0;
250 PushPropertiesInternal( 251 PushPropertiesInternal(
251 layer, layer_impl, &num_dependents_need_push_properties); 252 layer, layer_impl, &num_dependents_need_push_properties);
252 } 253 }
253 254
254 } // namespace cc 255 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/threaded_channel_unittest.cc ('k') | cc/trees/tree_synchronizer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698