| 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..1547dba9d08316e848bba630d340a2c86e30f25d 100644
|
| --- a/services/resource_coordinator/coordination_unit/coordination_unit_impl.cc
|
| +++ b/services/resource_coordinator/coordination_unit/coordination_unit_impl.cc
|
| @@ -157,9 +157,28 @@ 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()) {
|
| + return;
|
| + }
|
| +
|
| + 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) {
|
|
|