Index: chrome/browser/sync_file_system/drive_metadata_store.cc |
diff --git a/chrome/browser/sync_file_system/drive_metadata_store.cc b/chrome/browser/sync_file_system/drive_metadata_store.cc |
index 89eb3aa9060c3eee91dc02f564a7a9008a41cdc0..6aeca833b527656707772e53b2bfd74bd982b93d 100644 |
--- a/chrome/browser/sync_file_system/drive_metadata_store.cc |
+++ b/chrome/browser/sync_file_system/drive_metadata_store.cc |
@@ -115,7 +115,6 @@ class DriveMetadataDB { |
const std::string& resource_id); |
SyncStatusCode UpdateEntry(const FileSystemURL& url, |
DriveMetadata metadata); |
- SyncStatusCode DeleteEntry(const FileSystemURL& url); |
// TODO(calvinlo): consolidate these state transition functions for sync |
// origins like "UpdateOrigin(GURL, SyncStatusEnum)". And manage origins in |
@@ -432,14 +431,9 @@ void DriveMetadataStore::DeleteEntry( |
} |
if (found->second.erase(url.path()) == 1) { |
- base::PostTaskAndReplyWithResult( |
- file_task_runner_.get(), |
- FROM_HERE, |
- base::Bind( |
- &DriveMetadataDB::DeleteEntry, base::Unretained(db_.get()), url), |
- base::Bind(&DriveMetadataStore::UpdateDBStatusAndInvokeCallback, |
- AsWeakPtr(), |
- callback)); |
+ scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch); |
+ batch->Delete(FileSystemURLToMetadataKey(url)); |
+ WriteToDB(batch.Pass(), callback); |
return; |
} |
@@ -634,6 +628,16 @@ void DriveMetadataStore::DidUpdateOrigin( |
callback.Run(status); |
} |
+void DriveMetadataStore::WriteToDB(scoped_ptr<leveldb::WriteBatch> batch, |
+ const SyncStatusCallback& callback) { |
+ base::PostTaskAndReplyWithResult( |
+ file_task_runner_, FROM_HERE, |
+ base::Bind(&DriveMetadataDB::WriteToDB, |
+ base::Unretained(db_.get()), base::Owned(batch.release())), |
+ base::Bind(&DriveMetadataStore::UpdateDBStatusAndInvokeCallback, |
+ AsWeakPtr(), callback)); |
+} |
+ |
void DriveMetadataStore::UpdateDBStatus(SyncStatusCode status) { |
DCHECK(CalledOnValidThread()); |
if (db_status_ != SYNC_STATUS_OK && |
@@ -937,16 +941,6 @@ SyncStatusCode DriveMetadataDB::UpdateEntry(const FileSystemURL& url, |
return WriteToDB(&batch); |
} |
-SyncStatusCode DriveMetadataDB::DeleteEntry(const FileSystemURL& url) { |
- DCHECK(CalledOnValidThread()); |
- DCHECK(db_.get()); |
- |
- std::string metadata_key = FileSystemURLToMetadataKey(url); |
- leveldb::WriteBatch batch; |
- batch.Delete(metadata_key); |
- return WriteToDB(&batch); |
-} |
- |
SyncStatusCode DriveMetadataDB::UpdateOriginAsIncrementalSync( |
const GURL& origin, const std::string& resource_id) { |
DCHECK(CalledOnValidThread()); |