| Index: storage/browser/blob/blob_data_handle.cc
|
| diff --git a/storage/browser/blob/blob_data_handle.cc b/storage/browser/blob/blob_data_handle.cc
|
| index cf647b4d9cc8a95c1a8df521c0157ad4563691a9..e3a4be944fe36eeedaed8cfb16cdf5a159f595c0 100644
|
| --- a/storage/browser/blob/blob_data_handle.cc
|
| +++ b/storage/browser/blob/blob_data_handle.cc
|
| @@ -8,38 +8,38 @@
|
| #include "base/location.h"
|
| #include "base/logging.h"
|
| #include "base/sequenced_task_runner.h"
|
| +#include "storage/browser/blob/blob_data_snapshot.h"
|
| #include "storage/browser/blob/blob_storage_context.h"
|
| -#include "storage/common/blob/blob_data.h"
|
|
|
| namespace storage {
|
|
|
| BlobDataHandle::BlobDataHandleShared::BlobDataHandleShared(
|
| - BlobData* blob_data,
|
| + const std::string& uuid,
|
| BlobStorageContext* context,
|
| base::SequencedTaskRunner* task_runner)
|
| - : blob_data_(blob_data),
|
| - context_(context->AsWeakPtr()) {
|
| - context_->IncrementBlobRefCount(blob_data->uuid());
|
| + : uuid_(uuid), context_(context->AsWeakPtr()) {
|
| + context_->IncrementBlobRefCount(uuid);
|
| }
|
|
|
| -BlobData* BlobDataHandle::BlobDataHandleShared::data() const {
|
| - return blob_data_.get();
|
| +scoped_ptr<BlobDataSnapshot>
|
| +BlobDataHandle::BlobDataHandleShared::CreateSnapshot() const {
|
| + return context_->CreateSnapshot(uuid_).Pass();
|
| }
|
|
|
| const std::string& BlobDataHandle::BlobDataHandleShared::uuid() const {
|
| - return blob_data_->uuid();
|
| + return uuid_;
|
| }
|
|
|
| BlobDataHandle::BlobDataHandleShared::~BlobDataHandleShared() {
|
| if (context_.get())
|
| - context_->DecrementBlobRefCount(blob_data_->uuid());
|
| + context_->DecrementBlobRefCount(uuid_);
|
| }
|
|
|
| -BlobDataHandle::BlobDataHandle(BlobData* blob_data,
|
| +BlobDataHandle::BlobDataHandle(const std::string& uuid,
|
| BlobStorageContext* context,
|
| base::SequencedTaskRunner* task_runner)
|
| : io_task_runner_(task_runner),
|
| - shared_(new BlobDataHandleShared(blob_data, context, task_runner)) {
|
| + shared_(new BlobDataHandleShared(uuid, context, task_runner)) {
|
| DCHECK(io_task_runner_.get());
|
| DCHECK(io_task_runner_->RunsTasksOnCurrentThread());
|
| }
|
| @@ -52,16 +52,16 @@ BlobDataHandle::BlobDataHandle(const BlobDataHandle& other) {
|
| BlobDataHandle::~BlobDataHandle() {
|
| BlobDataHandleShared* raw = shared_.get();
|
| raw->AddRef();
|
| - shared_ = 0;
|
| + shared_ = nullptr;
|
| io_task_runner_->ReleaseSoon(FROM_HERE, raw);
|
| }
|
|
|
| -BlobData* BlobDataHandle::data() const {
|
| +scoped_ptr<BlobDataSnapshot> BlobDataHandle::CreateSnapshot() const {
|
| DCHECK(io_task_runner_->RunsTasksOnCurrentThread());
|
| - return shared_->data();
|
| + return shared_->CreateSnapshot().Pass();
|
| }
|
|
|
| -std::string BlobDataHandle::uuid() const {
|
| +const std::string& BlobDataHandle::uuid() const {
|
| return shared_->uuid();
|
| }
|
|
|
|
|