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

Side by Side Diff: net/quic/quic_protocol.cc

Issue 1397113003: relnote: Refactor stream buffer allocation out into a scoped_ptr. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge with TOT Created 5 years, 2 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/quic/quic_protocol.h ('k') | no next file » | 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/quic/quic_protocol.h" 5 #include "net/quic/quic_protocol.h"
6 6
7 #include "base/stl_util.h" 7 #include "base/stl_util.h"
8 #include "net/quic/quic_flags.h" 8 #include "net/quic/quic_flags.h"
9 #include "net/quic/quic_utils.h" 9 #include "net/quic/quic_utils.h"
10 10
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 is_in_fec_group(NOT_IN_FEC_GROUP), 84 is_in_fec_group(NOT_IN_FEC_GROUP),
85 fec_group(0) {} 85 fec_group(0) {}
86 86
87 QuicPublicResetPacket::QuicPublicResetPacket() 87 QuicPublicResetPacket::QuicPublicResetPacket()
88 : nonce_proof(0), rejected_packet_number(0) {} 88 : nonce_proof(0), rejected_packet_number(0) {}
89 89
90 QuicPublicResetPacket::QuicPublicResetPacket( 90 QuicPublicResetPacket::QuicPublicResetPacket(
91 const QuicPacketPublicHeader& header) 91 const QuicPacketPublicHeader& header)
92 : public_header(header), nonce_proof(0), rejected_packet_number(0) {} 92 : public_header(header), nonce_proof(0), rejected_packet_number(0) {}
93 93
94 UniqueStreamBuffer NewStreamBuffer(size_t size) {
95 return UniqueStreamBuffer(new char[size]);
96 }
97
94 QuicStreamFrame::QuicStreamFrame() : stream_id(0), fin(false), offset(0) { 98 QuicStreamFrame::QuicStreamFrame() : stream_id(0), fin(false), offset(0) {
95 } 99 }
96 100
97 QuicStreamFrame::QuicStreamFrame(const QuicStreamFrame& frame) 101 QuicStreamFrame::QuicStreamFrame(const QuicStreamFrame& frame)
98 : stream_id(frame.stream_id), 102 : stream_id(frame.stream_id),
99 fin(frame.fin), 103 fin(frame.fin),
100 offset(frame.offset), 104 offset(frame.offset),
101 data(frame.data) { 105 data(frame.data) {
102 } 106 }
103 107
(...skipping 709 matching lines...) Expand 10 before | Expand all | Expand 10 after
813 case WINDOW_UPDATE_FRAME: 817 case WINDOW_UPDATE_FRAME:
814 delete it->window_update_frame; 818 delete it->window_update_frame;
815 break; 819 break;
816 case BLOCKED_FRAME: 820 case BLOCKED_FRAME:
817 delete it->blocked_frame; 821 delete it->blocked_frame;
818 break; 822 break;
819 case NUM_FRAME_TYPES: 823 case NUM_FRAME_TYPES:
820 DCHECK(false) << "Cannot delete type: " << it->type; 824 DCHECK(false) << "Cannot delete type: " << it->type;
821 } 825 }
822 } 826 }
827 // TODO(rtenneti): Delete the for loop once chrome has c++11 library support
828 // for "std::vector<UniqueStreamBuffer> stream_data_;".
823 for (const char* buffer : stream_data_) { 829 for (const char* buffer : stream_data_) {
824 delete[] buffer; 830 delete[] buffer;
825 } 831 }
826 } 832 }
827 833
828 const QuicFrame& RetransmittableFrames::AddFrame(const QuicFrame& frame) { 834 const QuicFrame& RetransmittableFrames::AddFrame(const QuicFrame& frame) {
829 return AddFrame(frame, nullptr); 835 return AddFrame(frame, nullptr);
830 } 836 }
831 837
832 const QuicFrame& RetransmittableFrames::AddFrame(const QuicFrame& frame, 838 const QuicFrame& RetransmittableFrames::AddFrame(const QuicFrame& frame,
833 char* buffer) { 839 UniqueStreamBuffer buffer) {
834 if (frame.type == STREAM_FRAME && 840 if (frame.type == STREAM_FRAME &&
835 frame.stream_frame->stream_id == kCryptoStreamId) { 841 frame.stream_frame->stream_id == kCryptoStreamId) {
836 has_crypto_handshake_ = IS_HANDSHAKE; 842 has_crypto_handshake_ = IS_HANDSHAKE;
837 } 843 }
838 if (buffer != nullptr) { 844 if (buffer != nullptr) {
839 stream_data_.push_back(buffer); 845 stream_data_.push_back(buffer.release());
840 } 846 }
841 frames_.push_back(frame); 847 frames_.push_back(frame);
842 return frames_.back(); 848 return frames_.back();
843 } 849 }
844 850
845 void RetransmittableFrames::RemoveFramesForStream(QuicStreamId stream_id) { 851 void RetransmittableFrames::RemoveFramesForStream(QuicStreamId stream_id) {
846 QuicFrames::iterator it = frames_.begin(); 852 QuicFrames::iterator it = frames_.begin();
847 while (it != frames_.end()) { 853 while (it != frames_.end()) {
848 if (it->type != STREAM_FRAME || it->stream_frame->stream_id != stream_id) { 854 if (it->type != STREAM_FRAME || it->stream_frame->stream_id != stream_id) {
849 ++it; 855 ++it;
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
908 sent_time(sent_time), 914 sent_time(sent_time),
909 bytes_sent(bytes_sent), 915 bytes_sent(bytes_sent),
910 nack_count(0), 916 nack_count(0),
911 transmission_type(transmission_type), 917 transmission_type(transmission_type),
912 all_transmissions(nullptr), 918 all_transmissions(nullptr),
913 in_flight(false), 919 in_flight(false),
914 is_unackable(false), 920 is_unackable(false),
915 is_fec_packet(is_fec_packet) {} 921 is_fec_packet(is_fec_packet) {}
916 922
917 } // namespace net 923 } // namespace net
OLDNEW
« no previous file with comments | « net/quic/quic_protocol.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698