| 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..50ed6a2857ffe04d917f0cf835389c9c0c27510b 100644
|
| --- a/storage/browser/blob/blob_data_handle.cc
|
| +++ b/storage/browser/blob/blob_data_handle.cc
|
| @@ -13,55 +13,60 @@
|
|
|
| namespace storage {
|
|
|
| -BlobDataHandle::BlobDataHandleShared::BlobDataHandleShared(
|
| - BlobData* blob_data,
|
| - BlobStorageContext* context,
|
| - base::SequencedTaskRunner* task_runner)
|
| - : blob_data_(blob_data),
|
| - context_(context->AsWeakPtr()) {
|
| +BlobDataSnapshotHandle::BlobDataSnapshotHandleShared::
|
| + BlobDataSnapshotHandleShared(BlobDataSnapshot* blob_data,
|
| + BlobStorageContext* context,
|
| + base::SequencedTaskRunner* task_runner)
|
| + : blob_data_(blob_data), context_(context->AsWeakPtr()) {
|
| context_->IncrementBlobRefCount(blob_data->uuid());
|
| }
|
|
|
| -BlobData* BlobDataHandle::BlobDataHandleShared::data() const {
|
| +BlobDataSnapshot* BlobDataSnapshotHandle::BlobDataSnapshotHandleShared::data()
|
| + const {
|
| return blob_data_.get();
|
| }
|
|
|
| -const std::string& BlobDataHandle::BlobDataHandleShared::uuid() const {
|
| +const std::string& BlobDataSnapshotHandle::BlobDataSnapshotHandleShared::uuid()
|
| + const {
|
| return blob_data_->uuid();
|
| }
|
|
|
| -BlobDataHandle::BlobDataHandleShared::~BlobDataHandleShared() {
|
| +BlobDataSnapshotHandle::BlobDataSnapshotHandleShared::
|
| + ~BlobDataSnapshotHandleShared() {
|
| if (context_.get())
|
| context_->DecrementBlobRefCount(blob_data_->uuid());
|
| }
|
|
|
| -BlobDataHandle::BlobDataHandle(BlobData* blob_data,
|
| - BlobStorageContext* context,
|
| - base::SequencedTaskRunner* task_runner)
|
| +BlobDataSnapshotHandle::BlobDataSnapshotHandle(
|
| + BlobDataSnapshot* blob_data,
|
| + BlobStorageContext* context,
|
| + base::SequencedTaskRunner* task_runner)
|
| : io_task_runner_(task_runner),
|
| - shared_(new BlobDataHandleShared(blob_data, context, task_runner)) {
|
| + shared_(
|
| + new BlobDataSnapshotHandleShared(blob_data, context, task_runner)) {
|
| DCHECK(io_task_runner_.get());
|
| DCHECK(io_task_runner_->RunsTasksOnCurrentThread());
|
| }
|
|
|
| -BlobDataHandle::BlobDataHandle(const BlobDataHandle& other) {
|
| +BlobDataSnapshotHandle::BlobDataSnapshotHandle(
|
| + const BlobDataSnapshotHandle& other) {
|
| io_task_runner_ = other.io_task_runner_;
|
| shared_ = other.shared_;
|
| }
|
|
|
| -BlobDataHandle::~BlobDataHandle() {
|
| - BlobDataHandleShared* raw = shared_.get();
|
| +BlobDataSnapshotHandle::~BlobDataSnapshotHandle() {
|
| + BlobDataSnapshotHandleShared* raw = shared_.get();
|
| raw->AddRef();
|
| - shared_ = 0;
|
| + shared_ = nullptr;
|
| io_task_runner_->ReleaseSoon(FROM_HERE, raw);
|
| }
|
|
|
| -BlobData* BlobDataHandle::data() const {
|
| +const BlobDataSnapshot* BlobDataSnapshotHandle::data() const {
|
| DCHECK(io_task_runner_->RunsTasksOnCurrentThread());
|
| return shared_->data();
|
| }
|
|
|
| -std::string BlobDataHandle::uuid() const {
|
| +const std::string& BlobDataSnapshotHandle::uuid() const {
|
| return shared_->uuid();
|
| }
|
|
|
|
|