Index: storage/browser/blob/blob_reader.cc |
diff --git a/storage/browser/blob/blob_reader.cc b/storage/browser/blob/blob_reader.cc |
index d548a0398bb0152cffe8260be7b5c456feaf06cf..2afb964e88ab2503e808c82bfb1716d580cfc470 100644 |
--- a/storage/browser/blob/blob_reader.cc |
+++ b/storage/browser/blob/blob_reader.cc |
@@ -15,7 +15,6 @@ |
#include "base/bind.h" |
#include "base/callback_helpers.h" |
#include "base/sequenced_task_runner.h" |
-#include "base/stl_util.h" |
#include "base/time/time.h" |
#include "base/trace_event/trace_event.h" |
#include "net/base/io_buffer.h" |
@@ -76,7 +75,6 @@ BlobReader::BlobReader( |
} |
BlobReader::~BlobReader() { |
- base::STLDeleteValues(&index_to_reader_); |
} |
BlobReader::Status BlobReader::CalculateSize( |
@@ -620,13 +618,13 @@ FileStreamReader* BlobReader::GetOrCreateFileReaderAtIndex(size_t index) { |
auto it = index_to_reader_.find(index); |
if (it != index_to_reader_.end()) { |
DCHECK(it->second); |
- return it->second; |
+ return it->second.get(); |
} |
std::unique_ptr<FileStreamReader> reader = CreateFileStreamReader(item, 0); |
FileStreamReader* ret_value = reader.get(); |
if (!ret_value) |
return nullptr; |
- index_to_reader_[index] = reader.release(); |
+ index_to_reader_[index] = std::move(reader); |
return ret_value; |
} |
@@ -662,19 +660,10 @@ std::unique_ptr<FileStreamReader> BlobReader::CreateFileStreamReader( |
void BlobReader::SetFileReaderAtIndex( |
size_t index, |
std::unique_ptr<FileStreamReader> reader) { |
- auto found = index_to_reader_.find(current_item_index_); |
- if (found != index_to_reader_.end()) { |
- if (found->second) { |
- delete found->second; |
- } |
- if (!reader.get()) { |
- index_to_reader_.erase(found); |
- return; |
- } |
- found->second = reader.release(); |
- } else if (reader.get()) { |
- index_to_reader_[current_item_index_] = reader.release(); |
- } |
+ if (reader) |
+ index_to_reader_[index] = std::move(reader); |
+ else |
+ index_to_reader_.erase(index); |
} |
} // namespace storage |