| Index: net/spdy/hpack/hpack_decoder.cc
|
| diff --git a/net/spdy/hpack/hpack_decoder.cc b/net/spdy/hpack/hpack_decoder.cc
|
| index 1b66851159a6879ad006933707dd2a4c996be0b0..d729919e49240f3115136ee8eceda18cf99c5f99 100644
|
| --- a/net/spdy/hpack/hpack_decoder.cc
|
| +++ b/net/spdy/hpack/hpack_decoder.cc
|
| @@ -75,20 +75,16 @@ bool HpackDecoder::HandleHeaderRepresentation(StringPiece name,
|
| }
|
| }
|
|
|
| - auto it = decoded_block_.find(name.as_string());
|
| + auto it = decoded_block_.find(name);
|
| if (it == decoded_block_.end()) {
|
| // This is a new key.
|
| - decoded_block_[name.as_string()].assign(value.data(), value.size());
|
| + decoded_block_[name] = value;
|
| } else {
|
| // The key already exists, append |value| with appropriate delimiter.
|
| - string& old_value = it->second;
|
| - if (name == kCookieKey) {
|
| - old_value.append("; ");
|
| - value.AppendToString(&old_value);
|
| - } else {
|
| - old_value.push_back('\0');
|
| - old_value.insert(old_value.end(), value.begin(), value.end());
|
| - }
|
| + string new_value = it->second.as_string();
|
| + new_value.append((name == kCookieKey) ? "; " : string(1, '\0'));
|
| + value.AppendToString(&new_value);
|
| + decoded_block_.ReplaceOrAppendHeader(name, new_value);
|
| }
|
| return true;
|
| }
|
|
|