Member variable should not be a reference; causing crash when used in destructor.

pull/23610/head
Donna Dionne 4 years ago
parent 6f5c468dfe
commit 6fc2e798e6
  1. 7
      src/core/ext/filters/client_channel/lb_policy/weighted_target/weighted_target.cc

@ -171,7 +171,7 @@ class WeightedTargetLb : public LoadBalancingPolicy {
// The owning LB policy. // The owning LB policy.
RefCountedPtr<WeightedTargetLb> weighted_target_policy_; RefCountedPtr<WeightedTargetLb> weighted_target_policy_;
const std::string& name_; const std::string name_;
uint32_t weight_; uint32_t weight_;
@ -290,9 +290,8 @@ void WeightedTargetLb::UpdateLocked(UpdateArgs args) {
const std::string& name = p.first; const std::string& name = p.first;
auto it = targets_.find(name); auto it = targets_.find(name);
if (it == targets_.end()) { if (it == targets_.end()) {
it = targets_.emplace(std::make_pair(name, nullptr)).first; targets_.emplace(name, MakeOrphanable<WeightedChild>(
it->second = MakeOrphanable<WeightedChild>( Ref(DEBUG_LOCATION, "WeightedChild"), name));
Ref(DEBUG_LOCATION, "WeightedChild"), it->first);
} }
} }
// Update all children. // Update all children.

Loading…
Cancel
Save