Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(108)

Side by Side Diff: content/browser/indexed_db/indexed_db_backing_store.cc

Issue 2255853003: IndexedDB: ScopedVector<T> -> vector<unique_ptr<T>> (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Review feedback Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/indexed_db/indexed_db_backing_store.h" 5 #include "content/browser/indexed_db/indexed_db_backing_store.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 1884 matching lines...) Expand 10 before | Expand all | Expand 10 after
1895 *new_version_number = version; 1895 *new_version_number = version;
1896 return s; 1896 return s;
1897 } 1897 }
1898 1898
1899 leveldb::Status IndexedDBBackingStore::PutRecord( 1899 leveldb::Status IndexedDBBackingStore::PutRecord(
1900 IndexedDBBackingStore::Transaction* transaction, 1900 IndexedDBBackingStore::Transaction* transaction,
1901 int64_t database_id, 1901 int64_t database_id,
1902 int64_t object_store_id, 1902 int64_t object_store_id,
1903 const IndexedDBKey& key, 1903 const IndexedDBKey& key,
1904 IndexedDBValue* value, 1904 IndexedDBValue* value,
1905 ScopedVector<storage::BlobDataHandle>* handles, 1905 std::vector<std::unique_ptr<storage::BlobDataHandle>>* handles,
1906 RecordIdentifier* record_identifier) { 1906 RecordIdentifier* record_identifier) {
1907 IDB_TRACE("IndexedDBBackingStore::PutRecord"); 1907 IDB_TRACE("IndexedDBBackingStore::PutRecord");
1908 if (!KeyPrefix::ValidIds(database_id, object_store_id)) 1908 if (!KeyPrefix::ValidIds(database_id, object_store_id))
1909 return InvalidDBKeyStatus(); 1909 return InvalidDBKeyStatus();
1910 DCHECK(key.IsValid()); 1910 DCHECK(key.IsValid());
1911 1911
1912 LevelDBTransaction* leveldb_transaction = transaction->transaction(); 1912 LevelDBTransaction* leveldb_transaction = transaction->transaction();
1913 int64_t version = -1; 1913 int64_t version = -1;
1914 leveldb::Status s = GetNewVersionNumber( 1914 leveldb::Status s = GetNewVersionNumber(
1915 leveldb_transaction, database_id, object_store_id, &version); 1915 leveldb_transaction, database_id, object_store_id, &version);
(...skipping 2444 matching lines...) Expand 10 before | Expand all | Expand 10 after
4360 } 4360 }
4361 4361
4362 void IndexedDBBackingStore::BlobChangeRecord::SetBlobInfo( 4362 void IndexedDBBackingStore::BlobChangeRecord::SetBlobInfo(
4363 std::vector<IndexedDBBlobInfo>* blob_info) { 4363 std::vector<IndexedDBBlobInfo>* blob_info) {
4364 blob_info_.clear(); 4364 blob_info_.clear();
4365 if (blob_info) 4365 if (blob_info)
4366 blob_info_.swap(*blob_info); 4366 blob_info_.swap(*blob_info);
4367 } 4367 }
4368 4368
4369 void IndexedDBBackingStore::BlobChangeRecord::SetHandles( 4369 void IndexedDBBackingStore::BlobChangeRecord::SetHandles(
4370 ScopedVector<storage::BlobDataHandle>* handles) { 4370 std::vector<std::unique_ptr<storage::BlobDataHandle>>* handles) {
4371 handles_.clear(); 4371 handles_.clear();
4372 if (handles) 4372 if (handles)
4373 handles_.swap(*handles); 4373 handles_.swap(*handles);
4374 } 4374 }
4375 4375
4376 std::unique_ptr<IndexedDBBackingStore::BlobChangeRecord> 4376 std::unique_ptr<IndexedDBBackingStore::BlobChangeRecord>
4377 IndexedDBBackingStore::BlobChangeRecord::Clone() const { 4377 IndexedDBBackingStore::BlobChangeRecord::Clone() const {
4378 std::unique_ptr<IndexedDBBackingStore::BlobChangeRecord> record( 4378 std::unique_ptr<IndexedDBBackingStore::BlobChangeRecord> record(
4379 new BlobChangeRecord(key_, object_store_id_)); 4379 new BlobChangeRecord(key_, object_store_id_));
4380 record->blob_info_ = blob_info_; 4380 record->blob_info_ = blob_info_;
4381 4381
4382 for (const auto* handle : handles_) 4382 for (const auto& handle : handles_) {
4383 record->handles_.push_back(new storage::BlobDataHandle(*handle)); 4383 record->handles_.push_back(
4384 base::MakeUnique<storage::BlobDataHandle>(*handle));
4385 }
4384 return record; 4386 return record;
4385 } 4387 }
4386 4388
4387 leveldb::Status IndexedDBBackingStore::Transaction::PutBlobInfoIfNeeded( 4389 leveldb::Status IndexedDBBackingStore::Transaction::PutBlobInfoIfNeeded(
4388 int64_t database_id, 4390 int64_t database_id,
4389 int64_t object_store_id, 4391 int64_t object_store_id,
4390 const std::string& object_store_data_key, 4392 const std::string& object_store_data_key,
4391 std::vector<IndexedDBBlobInfo>* blob_info, 4393 std::vector<IndexedDBBlobInfo>* blob_info,
4392 ScopedVector<storage::BlobDataHandle>* handles) { 4394 std::vector<std::unique_ptr<storage::BlobDataHandle>>* handles) {
4393 if (!blob_info || blob_info->empty()) { 4395 if (!blob_info || blob_info->empty()) {
4394 blob_change_map_.erase(object_store_data_key); 4396 blob_change_map_.erase(object_store_data_key);
4395 incognito_blob_map_.erase(object_store_data_key); 4397 incognito_blob_map_.erase(object_store_data_key);
4396 4398
4397 BlobEntryKey blob_entry_key; 4399 BlobEntryKey blob_entry_key;
4398 StringPiece leveldb_key_piece(object_store_data_key); 4400 StringPiece leveldb_key_piece(object_store_data_key);
4399 if (!BlobEntryKey::FromObjectStoreDataKey(&leveldb_key_piece, 4401 if (!BlobEntryKey::FromObjectStoreDataKey(&leveldb_key_piece,
4400 &blob_entry_key)) { 4402 &blob_entry_key)) {
4401 NOTREACHED(); 4403 NOTREACHED();
4402 return InternalInconsistencyStatus(); 4404 return InternalInconsistencyStatus();
(...skipping 14 matching lines...) Expand all
4417 4419
4418 // This is storing an info, even if empty, even if the previous key had no blob 4420 // This is storing an info, even if empty, even if the previous key had no blob
4419 // info that we know of. It duplicates a bunch of information stored in the 4421 // info that we know of. It duplicates a bunch of information stored in the
4420 // leveldb transaction, but only w.r.t. the user keys altered--we don't keep the 4422 // leveldb transaction, but only w.r.t. the user keys altered--we don't keep the
4421 // changes to exists or index keys here. 4423 // changes to exists or index keys here.
4422 void IndexedDBBackingStore::Transaction::PutBlobInfo( 4424 void IndexedDBBackingStore::Transaction::PutBlobInfo(
4423 int64_t database_id, 4425 int64_t database_id,
4424 int64_t object_store_id, 4426 int64_t object_store_id,
4425 const std::string& object_store_data_key, 4427 const std::string& object_store_data_key,
4426 std::vector<IndexedDBBlobInfo>* blob_info, 4428 std::vector<IndexedDBBlobInfo>* blob_info,
4427 ScopedVector<storage::BlobDataHandle>* handles) { 4429 std::vector<std::unique_ptr<storage::BlobDataHandle>>* handles) {
4428 DCHECK_GT(object_store_data_key.size(), 0UL); 4430 DCHECK_GT(object_store_data_key.size(), 0UL);
4429 if (database_id_ < 0) 4431 if (database_id_ < 0)
4430 database_id_ = database_id; 4432 database_id_ = database_id;
4431 DCHECK_EQ(database_id_, database_id); 4433 DCHECK_EQ(database_id_, database_id);
4432 4434
4433 const auto& it = blob_change_map_.find(object_store_data_key); 4435 const auto& it = blob_change_map_.find(object_store_data_key);
4434 BlobChangeRecord* record = NULL; 4436 BlobChangeRecord* record = NULL;
4435 if (it == blob_change_map_.end()) { 4437 if (it == blob_change_map_.end()) {
4436 std::unique_ptr<BlobChangeRecord> new_record = 4438 std::unique_ptr<BlobChangeRecord> new_record =
4437 base::MakeUnique<BlobChangeRecord>(object_store_data_key, 4439 base::MakeUnique<BlobChangeRecord>(object_store_data_key,
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
4473 4475
4474 IndexedDBBackingStore::Transaction::WriteDescriptor::WriteDescriptor( 4476 IndexedDBBackingStore::Transaction::WriteDescriptor::WriteDescriptor(
4475 const WriteDescriptor& other) = default; 4477 const WriteDescriptor& other) = default;
4476 IndexedDBBackingStore::Transaction::WriteDescriptor::~WriteDescriptor() = 4478 IndexedDBBackingStore::Transaction::WriteDescriptor::~WriteDescriptor() =
4477 default; 4479 default;
4478 IndexedDBBackingStore::Transaction::WriteDescriptor& 4480 IndexedDBBackingStore::Transaction::WriteDescriptor&
4479 IndexedDBBackingStore::Transaction::WriteDescriptor:: 4481 IndexedDBBackingStore::Transaction::WriteDescriptor::
4480 operator=(const WriteDescriptor& other) = default; 4482 operator=(const WriteDescriptor& other) = default;
4481 4483
4482 } // namespace content 4484 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/indexed_db/indexed_db_backing_store.h ('k') | content/browser/indexed_db/indexed_db_backing_store_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698