relnote: Refactor stream buffer allocation out into a unique_ptr with a custom deleter. No functional change.
This is intended to support free listing the stream buffer allocations. Re-merge internal change: 103088826 BUG= Review URL: https://codereview.chromium.org/1493483002 Cr-Commit-Position: refs/heads/master@{#363706}
This commit is contained in:
@@ -323,8 +323,8 @@ size_t QuicPacketCreator::CreateStreamFrame(QuicStreamId id,
|
|||||||
CopyToBuffer(iov, iov_offset, bytes_consumed, buffer.get());
|
CopyToBuffer(iov, iov_offset, bytes_consumed, buffer.get());
|
||||||
// TODO(zhongyi): figure out the lifetime of data. Crashes on windows only.
|
// TODO(zhongyi): figure out the lifetime of data. Crashes on windows only.
|
||||||
StringPiece data(buffer.get(), bytes_consumed);
|
StringPiece data(buffer.get(), bytes_consumed);
|
||||||
*frame =
|
*frame = QuicFrame(
|
||||||
QuicFrame(new QuicStreamFrame(id, set_fin, offset, data, buffer.Pass()));
|
new QuicStreamFrame(id, set_fin, offset, data, std::move(buffer)));
|
||||||
return bytes_consumed;
|
return bytes_consumed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -99,6 +99,10 @@ QuicPublicResetPacket::QuicPublicResetPacket(
|
|||||||
const QuicPacketPublicHeader& header)
|
const QuicPacketPublicHeader& header)
|
||||||
: public_header(header), nonce_proof(0), rejected_packet_number(0) {}
|
: public_header(header), nonce_proof(0), rejected_packet_number(0) {}
|
||||||
|
|
||||||
|
void StreamBufferDeleter::operator()(char* buf) const {
|
||||||
|
delete[] buf;
|
||||||
|
}
|
||||||
|
|
||||||
UniqueStreamBuffer NewStreamBuffer(size_t size) {
|
UniqueStreamBuffer NewStreamBuffer(size_t size) {
|
||||||
return UniqueStreamBuffer(new char[size]);
|
return UniqueStreamBuffer(new char[size]);
|
||||||
}
|
}
|
||||||
@@ -122,7 +126,7 @@ QuicStreamFrame::QuicStreamFrame(QuicStreamId stream_id,
|
|||||||
fin(fin),
|
fin(fin),
|
||||||
offset(offset),
|
offset(offset),
|
||||||
data(data),
|
data(data),
|
||||||
buffer(buffer.release()) {}
|
buffer(std::move(buffer)) {}
|
||||||
|
|
||||||
QuicStreamFrame::~QuicStreamFrame() {}
|
QuicStreamFrame::~QuicStreamFrame() {}
|
||||||
|
|
||||||
|
@@ -708,7 +708,13 @@ struct NET_EXPORT_PRIVATE QuicPingFrame {};
|
|||||||
// frame.
|
// frame.
|
||||||
struct NET_EXPORT_PRIVATE QuicMtuDiscoveryFrame {};
|
struct NET_EXPORT_PRIVATE QuicMtuDiscoveryFrame {};
|
||||||
|
|
||||||
typedef scoped_ptr<char[]> UniqueStreamBuffer;
|
// Deleter for stream buffers.
|
||||||
|
class NET_EXPORT_PRIVATE StreamBufferDeleter {
|
||||||
|
public:
|
||||||
|
void operator()(char* buf) const;
|
||||||
|
};
|
||||||
|
|
||||||
|
using UniqueStreamBuffer = std::unique_ptr<char[], StreamBufferDeleter>;
|
||||||
|
|
||||||
// Allocates memory of size |size| for a QUIC stream buffer.
|
// Allocates memory of size |size| for a QUIC stream buffer.
|
||||||
UniqueStreamBuffer NewStreamBuffer(size_t size);
|
UniqueStreamBuffer NewStreamBuffer(size_t size);
|
||||||
|
Reference in New Issue
Block a user