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());
|
||||
// TODO(zhongyi): figure out the lifetime of data. Crashes on windows only.
|
||||
StringPiece data(buffer.get(), bytes_consumed);
|
||||
*frame =
|
||||
QuicFrame(new QuicStreamFrame(id, set_fin, offset, data, buffer.Pass()));
|
||||
*frame = QuicFrame(
|
||||
new QuicStreamFrame(id, set_fin, offset, data, std::move(buffer)));
|
||||
return bytes_consumed;
|
||||
}
|
||||
|
||||
|
@ -99,6 +99,10 @@ QuicPublicResetPacket::QuicPublicResetPacket(
|
||||
const QuicPacketPublicHeader& header)
|
||||
: public_header(header), nonce_proof(0), rejected_packet_number(0) {}
|
||||
|
||||
void StreamBufferDeleter::operator()(char* buf) const {
|
||||
delete[] buf;
|
||||
}
|
||||
|
||||
UniqueStreamBuffer NewStreamBuffer(size_t size) {
|
||||
return UniqueStreamBuffer(new char[size]);
|
||||
}
|
||||
@ -122,7 +126,7 @@ QuicStreamFrame::QuicStreamFrame(QuicStreamId stream_id,
|
||||
fin(fin),
|
||||
offset(offset),
|
||||
data(data),
|
||||
buffer(buffer.release()) {}
|
||||
buffer(std::move(buffer)) {}
|
||||
|
||||
QuicStreamFrame::~QuicStreamFrame() {}
|
||||
|
||||
|
@ -708,7 +708,13 @@ struct NET_EXPORT_PRIVATE QuicPingFrame {};
|
||||
// frame.
|
||||
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.
|
||||
UniqueStreamBuffer NewStreamBuffer(size_t size);
|
||||
|
Reference in New Issue
Block a user