Chromium Code Reviews| Index: services/resource_coordinator/coordination_unit/coordination_unit_impl.cc | 
| diff --git a/services/resource_coordinator/coordination_unit/coordination_unit_impl.cc b/services/resource_coordinator/coordination_unit/coordination_unit_impl.cc | 
| index c212a708c02b3a55c7bc9e9519460391a83fef57..233ffd780579bc5a0502cd1c442b01b96cc317ea 100644 | 
| --- a/services/resource_coordinator/coordination_unit/coordination_unit_impl.cc | 
| +++ b/services/resource_coordinator/coordination_unit/coordination_unit_impl.cc | 
| @@ -157,9 +157,26 @@ bool CoordinationUnitImpl::AddChild(CoordinationUnitImpl* child) { | 
| return children_.count(child) ? false : children_.insert(child).second; | 
| } | 
| -void CoordinationUnitImpl::RemoveChild(CoordinationUnitImpl* child) { | 
| +void CoordinationUnitImpl::RemoveChild(const CoordinationUnitID& child_id) { | 
| + auto child_iter = g_cu_map().find(child_id); | 
| + if (child_iter != g_cu_map().end()) { | 
| 
 
nasko
2017/06/09 22:19:13
nit: Invert the check and return early. Leads to l
 
matthalp
2017/06/09 22:31:58
Good suggestion -- Done.
 
 | 
| + CoordinationUnitImpl* child = child_iter->second; | 
| + if (!HasChild(child)) { | 
| + return; | 
| + } | 
| + | 
| + DCHECK(child->id_ == child_id); | 
| + DCHECK(child != this); | 
| + | 
| + if (RemoveChild(child)) { | 
| + child->RemoveParent(this); | 
| + } | 
| + } | 
| +} | 
| + | 
| +bool CoordinationUnitImpl::RemoveChild(CoordinationUnitImpl* child) { | 
| size_t children_removed = children_.erase(child); | 
| - DCHECK_EQ(1u, children_removed); | 
| + return children_removed > 0; | 
| } | 
| void CoordinationUnitImpl::AddParent(CoordinationUnitImpl* parent) { |