| Index: net/spdy/spdy_read_queue.cc
|
| diff --git a/net/spdy/spdy_read_queue.cc b/net/spdy/spdy_read_queue.cc
|
| index adb0654186f868191bdb9da250ca22160c9cdb64..92a34e3e260cd0c73b2434972248f76bdec5ef00 100644
|
| --- a/net/spdy/spdy_read_queue.cc
|
| +++ b/net/spdy/spdy_read_queue.cc
|
| @@ -4,8 +4,10 @@
|
|
|
| #include "net/spdy/spdy_read_queue.h"
|
|
|
| +#include <algorithm>
|
| +#include <utility>
|
| +
|
| #include "base/logging.h"
|
| -#include "base/stl_util.h"
|
| #include "net/spdy/spdy_buffer.h"
|
|
|
| namespace net {
|
| @@ -28,31 +30,29 @@ size_t SpdyReadQueue::GetTotalSize() const {
|
| void SpdyReadQueue::Enqueue(std::unique_ptr<SpdyBuffer> buffer) {
|
| DCHECK_GT(buffer->GetRemainingSize(), 0u);
|
| total_size_ += buffer->GetRemainingSize();
|
| - queue_.push_back(buffer.release());
|
| + queue_.push_back(std::move(buffer));
|
| }
|
|
|
| size_t SpdyReadQueue::Dequeue(char* out, size_t len) {
|
| DCHECK_GT(len, 0u);
|
| size_t bytes_copied = 0;
|
| while (!queue_.empty() && bytes_copied < len) {
|
| - SpdyBuffer* buffer = queue_.front();
|
| + SpdyBuffer* buffer = queue_.front().get();
|
| size_t bytes_to_copy =
|
| std::min(len - bytes_copied, buffer->GetRemainingSize());
|
| memcpy(out + bytes_copied, buffer->GetRemainingData(), bytes_to_copy);
|
| bytes_copied += bytes_to_copy;
|
| - if (bytes_to_copy == buffer->GetRemainingSize()) {
|
| - delete queue_.front();
|
| + if (bytes_to_copy == buffer->GetRemainingSize())
|
| queue_.pop_front();
|
| - } else {
|
| + else
|
| buffer->Consume(bytes_to_copy);
|
| - }
|
| }
|
| total_size_ -= bytes_copied;
|
| return bytes_copied;
|
| }
|
|
|
| void SpdyReadQueue::Clear() {
|
| - base::STLDeleteElements(&queue_);
|
| + queue_.clear();
|
| }
|
|
|
| } // namespace net
|
|
|