Index: chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.cc |
diff --git a/chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.cc b/chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.cc |
index 0815128176acbf2a376a0959b6b5ebb6d73d8820..c18469ceb7503d3396af6d417f895af99d35e7ed 100644 |
--- a/chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.cc |
+++ b/chrome/browser/sync_file_system/drive_backend/local_to_remote_syncer.cc |
@@ -186,11 +186,9 @@ void LocalToRemoteSyncer::RunExclusive(scoped_ptr<SyncTaskToken> token) { |
remote_file_tracker_ = active_ancestor_tracker.Pass(); |
target_path_ = active_ancestor_path; |
token->RecordLog("Detected non-folder file in its path."); |
- DeleteRemoteFile(base::Bind( |
- &LocalToRemoteSyncer::DidDeleteForCreateFolder, |
- weak_ptr_factory_.GetWeakPtr(), |
- base::Bind(&LocalToRemoteSyncer::SyncCompleted, |
- weak_ptr_factory_.GetWeakPtr(), base::Passed(&token)))); |
+ DeleteRemoteFile(base::Bind(&LocalToRemoteSyncer::DidDeleteForCreateFolder, |
+ weak_ptr_factory_.GetWeakPtr(), |
+ base::Passed(&token))); |
return; |
} |
@@ -357,9 +355,7 @@ void LocalToRemoteSyncer::HandleExistingRemoteFile( |
// the remote file and create a remote folder. |
DeleteRemoteFile(base::Bind(&LocalToRemoteSyncer::DidDeleteForCreateFolder, |
weak_ptr_factory_.GetWeakPtr(), |
- base::Bind(&LocalToRemoteSyncer::SyncCompleted, |
- weak_ptr_factory_.GetWeakPtr(), |
- base::Passed(&token)))); |
+ base::Passed(&token))); |
return; |
} |
@@ -578,20 +574,26 @@ void LocalToRemoteSyncer::DidDeleteForUploadNewFile( |
} |
void LocalToRemoteSyncer::DidDeleteForCreateFolder( |
- const SyncStatusCallback& callback, |
+ scoped_ptr<SyncTaskToken> token, |
SyncStatusCode status) { |
if (status == SYNC_STATUS_HAS_CONFLICT) { |
- UpdateRemoteMetadata(remote_file_tracker_->file_id(), |
- base::Bind(&ReturnRetryOnSuccess, callback)); |
+ UpdateRemoteMetadata( |
+ remote_file_tracker_->file_id(), |
+ base::Bind(&ReturnRetryOnSuccess, |
+ base::Bind(&LocalToRemoteSyncer::SyncCompleted, |
+ weak_ptr_factory_.GetWeakPtr(), |
+ base::Passed(&token)))); |
return; |
} |
if (status != SYNC_STATUS_OK) { |
- callback.Run(status); |
+ SyncCompleted(token.Pass(), status); |
return; |
} |
- CreateRemoteFolder(callback); |
+ CreateRemoteFolder(base::Bind(&LocalToRemoteSyncer::SyncCompleted, |
+ weak_ptr_factory_.GetWeakPtr(), |
+ base::Passed(&token))); |
} |
void LocalToRemoteSyncer::UploadNewFile(const SyncStatusCallback& callback) { |