| Index: chrome/browser/sync_file_system/drive_backend/list_changes_task.cc
|
| diff --git a/chrome/browser/sync_file_system/drive_backend/list_changes_task.cc b/chrome/browser/sync_file_system/drive_backend/list_changes_task.cc
|
| index 01cb0fbc40e8bf55067a9fcec5bf2e60214ae38a..c6273d2cc8dfc00182c431b74ecc575a27903a12 100644
|
| --- a/chrome/browser/sync_file_system/drive_backend/list_changes_task.cc
|
| +++ b/chrome/browser/sync_file_system/drive_backend/list_changes_task.cc
|
| @@ -113,9 +113,27 @@ void ListChangesTask::CheckInChangeList(int64 largest_change_id,
|
| "Got %" PRIuS " changes, updating MetadataDatabase.",
|
| change_list_.size()));
|
|
|
| + DCHECK(file_ids_.empty());
|
| + file_ids_.reserve(change_list_.size());
|
| + for (size_t i = 0; i < change_list_.size(); ++i)
|
| + file_ids_.push_back(change_list_[i]->file_id());
|
| +
|
| metadata_database()->UpdateByChangeList(
|
| largest_change_id,
|
| change_list_.Pass(),
|
| + base::Bind(&ListChangesTask::DidCheckInChangeList,
|
| + weak_ptr_factory_.GetWeakPtr(), base::Passed(&token)));
|
| +}
|
| +
|
| +void ListChangesTask::DidCheckInChangeList(scoped_ptr<SyncTaskToken> token,
|
| + SyncStatusCode status) {
|
| + if (status != SYNC_STATUS_OK) {
|
| + SyncTaskManager::NotifyTaskDone(token.Pass(), status);
|
| + return;
|
| + }
|
| +
|
| + metadata_database()->SweepDirtyTrackers(
|
| + file_ids_,
|
| base::Bind(&SyncTaskManager::NotifyTaskDone, base::Passed(&token)));
|
| }
|
|
|
|
|