Commit 893e4953 authored by Haoyue Wang's avatar Haoyue Wang Committed by Commit Bot

Add a constructor that takes in heap allocated buffer to QuicMemSliceImpl.

Change-Id: Ife0548334e75ae9e23c9c3b3824965ccfe182712
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2547210
Auto-Submit: Haoyue Wang <haoyuewang@chromium.org>
Commit-Queue: Victor Vasiliev <vasilvv@chromium.org>
Reviewed-by: default avatarVictor Vasiliev <vasilvv@chromium.org>
Cr-Commit-Position: refs/heads/master@{#828904}
parent b2a2e943
......@@ -10,9 +10,10 @@ namespace quic {
namespace {
template <typename UniqueBufferPtr>
class QuicIOBuffer : public net::IOBuffer {
public:
QuicIOBuffer(QuicUniqueBufferPtr buffer, size_t size)
QuicIOBuffer(UniqueBufferPtr buffer, size_t size)
: buffer_(std::move(buffer)) {
AssertValidBufferSize(size);
data_ = buffer_.get();
......@@ -21,7 +22,7 @@ class QuicIOBuffer : public net::IOBuffer {
private:
~QuicIOBuffer() override { data_ = nullptr; }
QuicUniqueBufferPtr buffer_;
UniqueBufferPtr buffer_;
};
} // namespace
......@@ -29,7 +30,15 @@ class QuicIOBuffer : public net::IOBuffer {
QuicMemSliceImpl::QuicMemSliceImpl() = default;
QuicMemSliceImpl::QuicMemSliceImpl(QuicUniqueBufferPtr buffer, size_t length) {
io_buffer_ = base::MakeRefCounted<QuicIOBuffer>(std::move(buffer), length);
io_buffer_ = base::MakeRefCounted<QuicIOBuffer<QuicUniqueBufferPtr>>(
std::move(buffer), length);
length_ = length;
}
QuicMemSliceImpl::QuicMemSliceImpl(std::unique_ptr<char[]> buffer,
size_t length) {
io_buffer_ = base::MakeRefCounted<QuicIOBuffer<std::unique_ptr<char[]>>>(
std::move(buffer), length);
length_ = length;
}
......
......@@ -5,6 +5,8 @@
#ifndef NET_QUIC_PLATFORM_IMPL_QUIC_MEM_SLICE_IMPL_H_
#define NET_QUIC_PLATFORM_IMPL_QUIC_MEM_SLICE_IMPL_H_
#include <memory>
#include "base/memory/ref_counted.h"
#include "net/base/io_buffer.h"
#include "net/third_party/quiche/src/quic/core/quic_buffer_allocator.h"
......@@ -20,6 +22,7 @@ class QUIC_EXPORT_PRIVATE QuicMemSliceImpl {
// Constructs a QuicMemSliceImp by let |allocator| allocate a data buffer of
// |length|.
QuicMemSliceImpl(QuicUniqueBufferPtr buffer, size_t length);
QuicMemSliceImpl(std::unique_ptr<char[]> buffer, size_t length);
QuicMemSliceImpl(scoped_refptr<net::IOBuffer> io_buffer, size_t length);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment