Chromium Code Reviews| Index: chrome/browser/sync_file_system/local/local_file_sync_context.cc |
| diff --git a/chrome/browser/sync_file_system/local/local_file_sync_context.cc b/chrome/browser/sync_file_system/local/local_file_sync_context.cc |
| index bf75b1f88c6cfd5c1b259cb9e4468d66b955b31a..d71fa6814cb463ef33ae1bfe624f3b951dcba356 100644 |
| --- a/chrome/browser/sync_file_system/local/local_file_sync_context.cc |
| +++ b/chrome/browser/sync_file_system/local/local_file_sync_context.cc |
| @@ -107,15 +107,13 @@ void LocalFileSyncContext::GetFileForLocalSync( |
| DCHECK(file_system_context); |
| DCHECK(ui_task_runner_->RunsTasksOnCurrentThread()); |
| - std::deque<FileSystemURL>* urls = new std::deque<FileSystemURL>; |
| - file_system_context->default_file_task_runner()->PostTaskAndReply( |
| + base::PostTaskAndReplyWithResult( |
| + file_system_context->default_file_task_runner(), |
| FROM_HERE, |
| base::Bind(&LocalFileSyncContext::GetNextURLsForSyncOnFileThread, |
| - this, make_scoped_refptr(file_system_context), |
| - base::Unretained(urls)), |
| + this, make_scoped_refptr(file_system_context)), |
| base::Bind(&LocalFileSyncContext::TryPrepareForLocalSync, |
| - this, make_scoped_refptr(file_system_context), |
| - base::Owned(urls), callback)); |
| + this, make_scoped_refptr(file_system_context), callback)); |
| } |
| void LocalFileSyncContext::ClearChangesForURL( |
| @@ -762,9 +760,9 @@ void LocalFileSyncContext::DidInitialize( |
| pending_initialize_callbacks_.erase(file_system_context); |
| } |
| -void LocalFileSyncContext::GetNextURLsForSyncOnFileThread( |
| - FileSystemContext* file_system_context, |
| - std::deque<FileSystemURL>* urls) { |
| +scoped_ptr<LocalFileSyncContext::FileSystemURLQueue> |
| +LocalFileSyncContext::GetNextURLsForSyncOnFileThread( |
| + FileSystemContext* file_system_context) { |
| DCHECK(file_system_context); |
| DCHECK(file_system_context->default_file_task_runner()-> |
| RunsTasksOnCurrentThread()); |
| @@ -772,14 +770,15 @@ void LocalFileSyncContext::GetNextURLsForSyncOnFileThread( |
| SyncFileSystemBackend::GetBackend(file_system_context); |
| DCHECK(backend); |
| DCHECK(backend->change_tracker()); |
| + scoped_ptr<FileSystemURLQueue> urls(new FileSystemURLQueue); |
| backend->change_tracker()->GetNextChangedURLs( |
| - urls, kMaxURLsToFetchForLocalSync); |
| + urls.get(), kMaxURLsToFetchForLocalSync); |
| } |
|
peria
2014/07/14 10:08:37
no return
tzik
2014/07/14 10:23:36
Done.
It's surprising that this code has passed th
|
| void LocalFileSyncContext::TryPrepareForLocalSync( |
| FileSystemContext* file_system_context, |
| - std::deque<FileSystemURL>* urls, |
| - const LocalFileSyncInfoCallback& callback) { |
| + const LocalFileSyncInfoCallback& callback, |
| + scoped_ptr<FileSystemURLQueue> urls) { |
| DCHECK(ui_task_runner_->RunsTasksOnCurrentThread()); |
| DCHECK(urls); |
| @@ -797,19 +796,17 @@ void LocalFileSyncContext::TryPrepareForLocalSync( |
| const FileSystemURL url = urls->front(); |
| urls->pop_front(); |
| - std::deque<FileSystemURL>* remaining = new std::deque<FileSystemURL>; |
| - remaining->swap(*urls); |
| PrepareForSync( |
| file_system_context, url, SYNC_SNAPSHOT, |
| base::Bind(&LocalFileSyncContext::DidTryPrepareForLocalSync, |
| this, make_scoped_refptr(file_system_context), |
| - base::Owned(remaining), callback)); |
| + base::Passed(&urls), callback)); |
| } |
| void LocalFileSyncContext::DidTryPrepareForLocalSync( |
| FileSystemContext* file_system_context, |
| - std::deque<FileSystemURL>* remaining_urls, |
| + scoped_ptr<FileSystemURLQueue> remaining_urls, |
| const LocalFileSyncInfoCallback& callback, |
| SyncStatusCode status, |
| const LocalFileSyncInfo& sync_file_info, |
| @@ -820,7 +817,7 @@ void LocalFileSyncContext::DidTryPrepareForLocalSync( |
| return; |
| } |
| // Recursively call TryPrepareForLocalSync with remaining_urls. |
| - TryPrepareForLocalSync(file_system_context, remaining_urls, callback); |
| + TryPrepareForLocalSync(file_system_context, callback, remaining_urls.Pass()); |
| } |
| void LocalFileSyncContext::DidGetWritingStatusForSync( |