aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/cpp
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2017-03-28 10:13:07 -0700
committerGravatar Craig Tiller <ctiller@google.com>2017-03-28 10:13:07 -0700
commitb6090a697b6559155ef8ac80d4343204183571d7 (patch)
tree1fffa6968d3ee46476a1106e70f3730144412bdb /src/cpp
parent306efc787a8a224b4fc5b523fd551f402932d14e (diff)
parent739cecb0bc1f1ba3b2e0b390795cbaf429ec81c2 (diff)
Merge github.com:grpc/grpc into new_transport_op
Diffstat (limited to 'src/cpp')
-rw-r--r--src/cpp/common/channel_arguments.cc17
1 files changed, 11 insertions, 6 deletions
diff --git a/src/cpp/common/channel_arguments.cc b/src/cpp/common/channel_arguments.cc
index eddcacc332..53e4a9c39c 100644
--- a/src/cpp/common/channel_arguments.cc
+++ b/src/cpp/common/channel_arguments.cc
@@ -133,14 +133,19 @@ void ChannelArguments::SetUserAgentPrefix(
return;
}
bool replaced = false;
+ auto strings_it = strings_.begin();
for (auto it = args_.begin(); it != args_.end(); ++it) {
const grpc_arg& arg = *it;
- if (arg.type == GRPC_ARG_STRING &&
- grpc::string(arg.key) == GRPC_ARG_PRIMARY_USER_AGENT_STRING) {
- strings_.push_back(user_agent_prefix + " " + arg.value.string);
- it->value.string = const_cast<char*>(strings_.back().c_str());
- replaced = true;
- break;
+ ++strings_it;
+ if (arg.type == GRPC_ARG_STRING) {
+ if (grpc::string(arg.key) == GRPC_ARG_PRIMARY_USER_AGENT_STRING) {
+ GPR_ASSERT(arg.value.string == strings_it->c_str());
+ *(strings_it) = user_agent_prefix + " " + arg.value.string;
+ it->value.string = const_cast<char*>(strings_it->c_str());
+ replaced = true;
+ break;
+ }
+ ++strings_it;
}
}
if (!replaced) {