| Index: chrome/browser/sync_file_system/drive_backend/metadata_database.cc
|
| diff --git a/chrome/browser/sync_file_system/drive_backend/metadata_database.cc b/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
|
| index 013f6155f2e78de494674394a13c8c693e634a17..e090e7e26c3958ee844075b3da3835df5fcf611a 100644
|
| --- a/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
|
| +++ b/chrome/browser/sync_file_system/drive_backend/metadata_database.cc
|
| @@ -797,6 +797,35 @@
|
| return true;
|
| }
|
|
|
| +void MetadataDatabase::UpdateByFileMetadata(scoped_ptr<FileMetadata> file,
|
| + leveldb::WriteBatch* batch) {
|
| + DCHECK(file);
|
| + DCHECK(file->has_details());
|
| + std::string file_id = file->file_id();
|
| + if (file->details().missing()) {
|
| + TrackerSet trackers;
|
| + FindTrackersByFileID(file_id, &trackers);
|
| + for (TrackerSet::const_iterator itr = trackers.begin();
|
| + itr != trackers.end(); ++itr) {
|
| + const FileTracker& tracker = **itr;
|
| + if (!tracker.has_synced_details() ||
|
| + tracker.synced_details().missing()) {
|
| + RemoveTracker(tracker.tracker_id(), batch);
|
| + }
|
| + }
|
| + } else {
|
| + MaybeAddTrackersForNewFile(*file, batch);
|
| + }
|
| +
|
| + if (FindTrackersByFileID(file_id, NULL)) {
|
| + MarkTrackersDirtyByFileID(file_id, batch);
|
| + PutFileToBatch(*file, batch);
|
| + FileMetadata* file_ptr = file.release();
|
| + std::swap(file_ptr, file_by_id_[file_id]);
|
| + delete file_ptr;
|
| + }
|
| +}
|
| +
|
| void MetadataDatabase::UpdateByChangeList(
|
| int64 largest_change_id,
|
| ScopedVector<google_apis::ChangeResource> changes,
|
| @@ -815,7 +844,7 @@
|
|
|
| scoped_ptr<FileMetadata> file(
|
| CreateFileMetadataFromChangeResource(change));
|
| - UpdateByFileMetadata(FROM_HERE, file.Pass(), batch.get());
|
| + UpdateByFileMetadata(file.Pass(), batch.get());
|
| }
|
|
|
| UpdateLargestKnownChangeID(largest_change_id);
|
| @@ -832,7 +861,7 @@
|
| scoped_ptr<FileMetadata> file(
|
| CreateFileMetadataFromFileResource(
|
| GetLargestKnownChangeID(), resource));
|
| - UpdateByFileMetadata(FROM_HERE, file.Pass(), batch.get());
|
| + UpdateByFileMetadata(file.Pass(), batch.get());
|
| WriteToDatabase(batch.Pass(), callback);
|
| }
|
|
|
| @@ -842,7 +871,7 @@
|
| scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch);
|
| scoped_ptr<FileMetadata> file(
|
| CreateDeletedFileMetadata(GetLargestKnownChangeID(), file_id));
|
| - UpdateByFileMetadata(FROM_HERE, file.Pass(), batch.get());
|
| + UpdateByFileMetadata(file.Pass(), batch.get());
|
| WriteToDatabase(batch.Pass(), callback);
|
| }
|
|
|
| @@ -1657,43 +1686,6 @@
|
| return found != trackers_by_title.end() && found->second.has_active();
|
| }
|
|
|
| -void MetadataDatabase::UpdateByFileMetadata(
|
| - const tracked_objects::Location& from_where,
|
| - scoped_ptr<FileMetadata> file,
|
| - leveldb::WriteBatch* batch) {
|
| - DCHECK(file);
|
| - DCHECK(file->has_details());
|
| -
|
| - DVLOG(1) << from_where.function_name() << ": "
|
| - << file->file_id() << " ("
|
| - << file->details().title() << ")"
|
| - << (file->details().missing() ? " deleted" : "");
|
| -
|
| - std::string file_id = file->file_id();
|
| - if (file->details().missing()) {
|
| - TrackerSet trackers;
|
| - FindTrackersByFileID(file_id, &trackers);
|
| - for (TrackerSet::const_iterator itr = trackers.begin();
|
| - itr != trackers.end(); ++itr) {
|
| - const FileTracker& tracker = **itr;
|
| - if (!tracker.has_synced_details() ||
|
| - tracker.synced_details().missing()) {
|
| - RemoveTracker(tracker.tracker_id(), batch);
|
| - }
|
| - }
|
| - } else {
|
| - MaybeAddTrackersForNewFile(*file, batch);
|
| - }
|
| -
|
| - if (FindTrackersByFileID(file_id, NULL)) {
|
| - MarkTrackersDirtyByFileID(file_id, batch);
|
| - PutFileToBatch(*file, batch);
|
| - FileMetadata* file_ptr = file.release();
|
| - std::swap(file_ptr, file_by_id_[file_id]);
|
| - delete file_ptr;
|
| - }
|
| -}
|
| -
|
| void MetadataDatabase::WriteToDatabase(scoped_ptr<leveldb::WriteBatch> batch,
|
| const SyncStatusCallback& callback) {
|
| base::PostTaskAndReplyWithResult(
|
|
|