Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(246)

Side by Side Diff: net/spdy/spdy_header_block.cc

Issue 2691393002: Fix auto raw pointer deduction on linux (Closed)
Patch Set: rebase Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « net/spdy/spdy_framer_test.cc ('k') | net/spdy/spdy_session_pool.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "net/spdy/spdy_header_block.h" 5 #include "net/spdy/spdy_header_block.h"
6 6
7 #include <string.h> 7 #include <string.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <utility> 10 #include <utility>
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
263 263
264 void SpdyHeaderBlock::insert(const SpdyHeaderBlock::value_type& value) { 264 void SpdyHeaderBlock::insert(const SpdyHeaderBlock::value_type& value) {
265 // TODO(birenroy): Write new value in place of old value, if it fits. 265 // TODO(birenroy): Write new value in place of old value, if it fits.
266 auto iter = block_.find(value.first); 266 auto iter = block_.find(value.first);
267 if (iter == block_.end()) { 267 if (iter == block_.end()) {
268 DVLOG(1) << "Inserting: (" << value.first << ", " << value.second << ")"; 268 DVLOG(1) << "Inserting: (" << value.first << ", " << value.second << ")";
269 AppendHeader(value.first, value.second); 269 AppendHeader(value.first, value.second);
270 } else { 270 } else {
271 DVLOG(1) << "Updating key: " << iter->first 271 DVLOG(1) << "Updating key: " << iter->first
272 << " with value: " << value.second; 272 << " with value: " << value.second;
273 auto storage = GetStorage(); 273 auto* storage = GetStorage();
274 iter->second = 274 iter->second =
275 HeaderValue(storage, iter->first, storage->Write(value.second)); 275 HeaderValue(storage, iter->first, storage->Write(value.second));
276 } 276 }
277 } 277 }
278 278
279 SpdyHeaderBlock::ValueProxy SpdyHeaderBlock::operator[](const StringPiece key) { 279 SpdyHeaderBlock::ValueProxy SpdyHeaderBlock::operator[](const StringPiece key) {
280 DVLOG(2) << "Operator[] saw key: " << key; 280 DVLOG(2) << "Operator[] saw key: " << key;
281 StringPiece out_key; 281 StringPiece out_key;
282 auto iter = block_.find(key); 282 auto iter = block_.find(key);
283 if (iter == block_.end()) { 283 if (iter == block_.end()) {
(...skipping 22 matching lines...) Expand all
306 } 306 }
307 307
308 size_t SpdyHeaderBlock::EstimateMemoryUsage() const { 308 size_t SpdyHeaderBlock::EstimateMemoryUsage() const {
309 // TODO(xunjieli): https://crbug.com/669108. Also include |block_| when EMU() 309 // TODO(xunjieli): https://crbug.com/669108. Also include |block_| when EMU()
310 // supports linked_hash_map. 310 // supports linked_hash_map.
311 return SpdyEstimateMemoryUsage(storage_); 311 return SpdyEstimateMemoryUsage(storage_);
312 } 312 }
313 313
314 void SpdyHeaderBlock::AppendHeader(const StringPiece key, 314 void SpdyHeaderBlock::AppendHeader(const StringPiece key,
315 const StringPiece value) { 315 const StringPiece value) {
316 auto storage = GetStorage(); 316 auto* storage = GetStorage();
317 auto backed_key = storage->Write(key); 317 auto backed_key = storage->Write(key);
318 block_.emplace(make_pair( 318 block_.emplace(make_pair(
319 backed_key, HeaderValue(storage, backed_key, storage->Write(value)))); 319 backed_key, HeaderValue(storage, backed_key, storage->Write(value))));
320 } 320 }
321 321
322 SpdyHeaderBlock::Storage* SpdyHeaderBlock::GetStorage() { 322 SpdyHeaderBlock::Storage* SpdyHeaderBlock::GetStorage() {
323 if (!storage_) { 323 if (!storage_) {
324 storage_.reset(new Storage); 324 storage_.reset(new Storage);
325 } 325 }
326 return storage_.get(); 326 return storage_.get();
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 return storage_->bytes_allocated(); 375 return storage_->bytes_allocated();
376 } 376 }
377 } 377 }
378 378
379 size_t Join(char* dst, 379 size_t Join(char* dst,
380 const std::vector<StringPiece>& fragments, 380 const std::vector<StringPiece>& fragments,
381 StringPiece separator) { 381 StringPiece separator) {
382 if (fragments.empty()) { 382 if (fragments.empty()) {
383 return 0; 383 return 0;
384 } 384 }
385 auto original_dst = dst; 385 auto* original_dst = dst;
386 auto it = fragments.begin(); 386 auto it = fragments.begin();
387 memcpy(dst, it->data(), it->size()); 387 memcpy(dst, it->data(), it->size());
388 dst += it->size(); 388 dst += it->size();
389 for (++it; it != fragments.end(); ++it) { 389 for (++it; it != fragments.end(); ++it) {
390 memcpy(dst, separator.data(), separator.size()); 390 memcpy(dst, separator.data(), separator.size());
391 dst += separator.size(); 391 dst += separator.size();
392 memcpy(dst, it->data(), it->size()); 392 memcpy(dst, it->data(), it->size());
393 dst += it->size(); 393 dst += it->size();
394 } 394 }
395 return dst - original_dst; 395 return dst - original_dst;
396 } 396 }
397 397
398 } // namespace net 398 } // namespace net
OLDNEW
« no previous file with comments | « net/spdy/spdy_framer_test.cc ('k') | net/spdy/spdy_session_pool.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698