diff --git a/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc b/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc index a3672e14bce..aba1d6cfba5 100644 --- a/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc +++ b/src/core/ext/filters/client_channel/lb_policy/xds/xds_routing.cc @@ -187,7 +187,7 @@ class XdsRoutingLb : public LoadBalancingPolicy { RefCountedPtr xds_routing_policy_; // Points to the corresponding key in XdsRoutingLb::actions_. - const std::string& name_; + const std::string name_; OrphanablePtr child_policy_; @@ -407,9 +407,10 @@ void XdsRoutingLb::UpdateLocked(UpdateArgs args) { const RefCountedPtr& config = p.second; auto it = actions_.find(name); if (it == actions_.end()) { - it = actions_.emplace(std::make_pair(name, nullptr)).first; - it->second = MakeOrphanable( - Ref(DEBUG_LOCATION, "XdsRoutingChild"), it->first); + it = actions_ + .emplace(name, MakeOrphanable( + Ref(DEBUG_LOCATION, "XdsRoutingChild"), name)) + .first; } it->second->UpdateLocked(config, args.addresses, args.args); }