| Index: third_party/WebKit/Source/modules/fetch/DataConsumerTee.cpp
|
| diff --git a/third_party/WebKit/Source/modules/fetch/DataConsumerTee.cpp b/third_party/WebKit/Source/modules/fetch/DataConsumerTee.cpp
|
| index 71f3deb798201e6ae325fdaeef45a0880540b6e9..a646561d6e7c65991d13fa7b62d2f9eeb0c4986e 100644
|
| --- a/third_party/WebKit/Source/modules/fetch/DataConsumerTee.cpp
|
| +++ b/third_party/WebKit/Source/modules/fetch/DataConsumerTee.cpp
|
| @@ -16,9 +16,11 @@
|
| #include "public/platform/WebTraceLocation.h"
|
| #include "wtf/Deque.h"
|
| #include "wtf/Functional.h"
|
| +#include "wtf/PtrUtil.h"
|
| #include "wtf/ThreadSafeRefCounted.h"
|
| #include "wtf/ThreadingPrimitives.h"
|
| #include "wtf/Vector.h"
|
| +#include <memory>
|
|
|
| namespace blink {
|
|
|
| @@ -148,7 +150,7 @@ public:
|
| {
|
| MutexLocker locker(m_mutex);
|
| needsNotification = m_queue.isEmpty();
|
| - OwnPtr<Vector<char>> data = adoptPtr(new Vector<char>);
|
| + std::unique_ptr<Vector<char>> data = wrapUnique(new Vector<char>);
|
| data->append(buffer, size);
|
| m_queue.append(std::move(data));
|
| }
|
| @@ -209,7 +211,7 @@ public:
|
| m_readerThread = nullptr;
|
| m_client = nullptr;
|
| }
|
| - const OwnPtr<Vector<char>>& top() const { return m_queue.first(); }
|
| + const std::unique_ptr<Vector<char>>& top() const { return m_queue.first(); }
|
| bool isEmpty() const { return m_queue.isEmpty(); }
|
| size_t offset() const { return m_offset; }
|
| void consume(size_t size)
|
| @@ -245,7 +247,7 @@ private:
|
| }
|
|
|
| Result m_result;
|
| - Deque<OwnPtr<Vector<char>>> m_queue;
|
| + Deque<std::unique_ptr<Vector<char>>> m_queue;
|
| // Note: Holding a WebThread raw pointer is not generally safe, but we can
|
| // do that in this case because:
|
| // 1. Destructing a ReaderImpl when the bound thread ends is a user's
|
| @@ -287,7 +289,7 @@ public:
|
| if (context()->isEmpty())
|
| return context()->getResult();
|
|
|
| - const OwnPtr<Vector<char>>& chunk = context()->top();
|
| + const std::unique_ptr<Vector<char>>& chunk = context()->top();
|
| *available = chunk->size() - context()->offset();
|
| *buffer = chunk->data() + context()->offset();
|
| return WebDataConsumerHandle::Ok;
|
| @@ -310,9 +312,9 @@ private:
|
|
|
| class DestinationHandle final : public WebDataConsumerHandle {
|
| public:
|
| - static PassOwnPtr<WebDataConsumerHandle> create(PassRefPtr<DestinationContext::Proxy> contextProxy)
|
| + static std::unique_ptr<WebDataConsumerHandle> create(PassRefPtr<DestinationContext::Proxy> contextProxy)
|
| {
|
| - return adoptPtr(new DestinationHandle(contextProxy));
|
| + return wrapUnique(new DestinationHandle(contextProxy));
|
| }
|
|
|
| private:
|
| @@ -329,7 +331,7 @@ class SourceContext final : public GarbageCollectedFinalized<SourceContext>, pub
|
| public:
|
| SourceContext(
|
| PassRefPtr<TeeRootObject> root,
|
| - PassOwnPtr<WebDataConsumerHandle> src,
|
| + std::unique_ptr<WebDataConsumerHandle> src,
|
| PassRefPtr<DestinationContext> dest1,
|
| PassRefPtr<DestinationContext> dest2,
|
| ExecutionContext* executionContext)
|
| @@ -394,14 +396,14 @@ private:
|
| }
|
|
|
| RefPtr<TeeRootObject> m_root;
|
| - OwnPtr<WebDataConsumerHandle::Reader> m_reader;
|
| + std::unique_ptr<WebDataConsumerHandle::Reader> m_reader;
|
| RefPtr<DestinationContext> m_dest1;
|
| RefPtr<DestinationContext> m_dest2;
|
| };
|
|
|
| } // namespace
|
|
|
| -void DataConsumerTee::create(ExecutionContext* executionContext, PassOwnPtr<WebDataConsumerHandle> src, OwnPtr<WebDataConsumerHandle>* dest1, OwnPtr<WebDataConsumerHandle>* dest2)
|
| +void DataConsumerTee::create(ExecutionContext* executionContext, std::unique_ptr<WebDataConsumerHandle> src, std::unique_ptr<WebDataConsumerHandle>* dest1, std::unique_ptr<WebDataConsumerHandle>* dest2)
|
| {
|
| RefPtr<TeeRootObject> root = TeeRootObject::create();
|
| RefPtr<DestinationTracker> tracker = DestinationTracker::create(root);
|
| @@ -414,7 +416,7 @@ void DataConsumerTee::create(ExecutionContext* executionContext, PassOwnPtr<WebD
|
| *dest2 = DestinationHandle::create(DestinationContext::Proxy::create(context2, tracker));
|
| }
|
|
|
| -void DataConsumerTee::create(ExecutionContext* executionContext, PassOwnPtr<FetchDataConsumerHandle> src, OwnPtr<FetchDataConsumerHandle>* dest1, OwnPtr<FetchDataConsumerHandle>* dest2)
|
| +void DataConsumerTee::create(ExecutionContext* executionContext, std::unique_ptr<FetchDataConsumerHandle> src, std::unique_ptr<FetchDataConsumerHandle>* dest1, std::unique_ptr<FetchDataConsumerHandle>* dest2)
|
| {
|
| RefPtr<BlobDataHandle> blobDataHandle = src->obtainReader(nullptr)->drainAsBlobDataHandle(FetchDataConsumerHandle::Reader::AllowBlobWithInvalidSize);
|
| if (blobDataHandle) {
|
| @@ -423,8 +425,8 @@ void DataConsumerTee::create(ExecutionContext* executionContext, PassOwnPtr<Fetc
|
| return;
|
| }
|
|
|
| - OwnPtr<WebDataConsumerHandle> webDest1, webDest2;
|
| - DataConsumerTee::create(executionContext, static_cast<PassOwnPtr<WebDataConsumerHandle>>(std::move(src)), &webDest1, &webDest2);
|
| + std::unique_ptr<WebDataConsumerHandle> webDest1, webDest2;
|
| + DataConsumerTee::create(executionContext, static_cast<std::unique_ptr<WebDataConsumerHandle>>(std::move(src)), &webDest1, &webDest2);
|
| *dest1 = createFetchDataConsumerHandleFromWebHandle(std::move(webDest1));
|
| *dest2 = createFetchDataConsumerHandleFromWebHandle(std::move(webDest2));
|
| return;
|
|
|