| Index: chrome/browser/chromeos/drive/file_system.cc
|
| diff --git a/chrome/browser/chromeos/drive/file_system.cc b/chrome/browser/chromeos/drive/file_system.cc
|
| index fb7e4cc5f0be2a943b4e71ec6d1283c96ceec45c..85c54d447d6584433f478d49a0cb621b4d9a946c 100644
|
| --- a/chrome/browser/chromeos/drive/file_system.cc
|
| +++ b/chrome/browser/chromeos/drive/file_system.cc
|
| @@ -179,11 +179,12 @@ void RunGetCacheEntryCallback(const GetCacheEntryCallback& callback,
|
| void OnGetLargestChangestamp(
|
| FileSystemMetadata metadata, // Will be modified.
|
| const GetFilesystemMetadataCallback& callback,
|
| - int64 largest_changestamp) {
|
| + const int64* largest_changestamp,
|
| + FileError error) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| DCHECK(!callback.is_null());
|
|
|
| - metadata.largest_changestamp = largest_changestamp;
|
| + metadata.largest_changestamp = *largest_changestamp;
|
| callback.Run(metadata);
|
| }
|
|
|
| @@ -215,9 +216,9 @@ FileError GetPathFromResourceIdOnBlockingPool(
|
| std::string local_id;
|
| const FileError error =
|
| resource_metadata->GetIdByResourceId(resource_id, &local_id);
|
| - *file_path = error == FILE_ERROR_OK ?
|
| - resource_metadata->GetFilePath(local_id) : base::FilePath();
|
| - return error;
|
| + if (error != FILE_ERROR_OK)
|
| + return error;
|
| + return resource_metadata->GetFilePath(local_id, file_path);
|
| }
|
|
|
| // Part of GetPathFromResourceId().
|
| @@ -820,25 +821,29 @@ void FileSystem::OnEntryUpdatedByOperation(const std::string& local_id) {
|
|
|
| void FileSystem::OnDriveSyncError(file_system::DriveSyncErrorType type,
|
| const std::string& local_id) {
|
| + base::FilePath* file_path = new base::FilePath;
|
| base::PostTaskAndReplyWithResult(
|
| blocking_task_runner_,
|
| FROM_HERE,
|
| base::Bind(&internal::ResourceMetadata::GetFilePath,
|
| base::Unretained(resource_metadata_),
|
| - local_id),
|
| + local_id,
|
| + file_path),
|
| base::Bind(&FileSystem::OnDriveSyncErrorAfterGetFilePath,
|
| weak_ptr_factory_.GetWeakPtr(),
|
| - type));
|
| + type,
|
| + base::Owned(file_path)));
|
| }
|
|
|
| void FileSystem::OnDriveSyncErrorAfterGetFilePath(
|
| file_system::DriveSyncErrorType type,
|
| - const base::FilePath& path) {
|
| - if (path.empty())
|
| + const base::FilePath* file_path,
|
| + FileError error) {
|
| + if (error != FILE_ERROR_OK)
|
| return;
|
| FOR_EACH_OBSERVER(FileSystemObserver,
|
| observers_,
|
| - OnDriveSyncError(type, path));
|
| + OnDriveSyncError(type, *file_path));
|
| }
|
|
|
| void FileSystem::OnDirectoryChanged(const base::FilePath& directory_path) {
|
| @@ -876,12 +881,14 @@ void FileSystem::GetMetadata(
|
| metadata.last_update_check_time = last_update_check_time_;
|
| metadata.last_update_check_error = last_update_check_error_;
|
|
|
| + int64* largest_changestamp = new int64(0);
|
| base::PostTaskAndReplyWithResult(
|
| blocking_task_runner_,
|
| FROM_HERE,
|
| base::Bind(&internal::ResourceMetadata::GetLargestChangestamp,
|
| - base::Unretained(resource_metadata_)),
|
| - base::Bind(&OnGetLargestChangestamp, metadata, callback));
|
| + base::Unretained(resource_metadata_), largest_changestamp),
|
| + base::Bind(&OnGetLargestChangestamp, metadata, callback,
|
| + base::Owned(largest_changestamp)));
|
| }
|
|
|
| void FileSystem::MarkCacheFileAsMounted(
|
|
|