diff options
author | sreeram@chromium.org <sreeram@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-29 18:37:04 +0000 |
---|---|---|
committer | sreeram@chromium.org <sreeram@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-08-29 18:37:04 +0000 |
commit | 6f3994a1d5e5a23557da5c4ecae435c3955ddef0 (patch) | |
tree | 8e44af4d1aeda4083084ac9185c9dfca9aa7605e /chrome/browser/chromeos/gdata | |
parent | 2901ba7669f34d2a7867883fe7bb3c0262e12027 (diff) | |
download | chromium_src-6f3994a1d5e5a23557da5c4ecae435c3955ddef0.zip chromium_src-6f3994a1d5e5a23557da5c4ecae435c3955ddef0.tar.gz chromium_src-6f3994a1d5e5a23557da5c4ecae435c3955ddef0.tar.bz2 |
Revert 153920 - drive: Fix possible leak in DriveFileSystem::AddUploadedFile
Fix possible leak which can occur when the callback not getting called.
BUG=None
TEST=unit_tests --gtest_filter="DriveFileSystemTest.*"
Review URL: https://chromiumcodereview.appspot.com/10889018
TBR=hashimoto@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10891034
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@153925 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/chromeos/gdata')
-rw-r--r-- | chrome/browser/chromeos/gdata/drive_file_system.cc | 12 | ||||
-rw-r--r-- | chrome/browser/chromeos/gdata/drive_file_system.h | 4 |
2 files changed, 8 insertions, 8 deletions
diff --git a/chrome/browser/chromeos/gdata/drive_file_system.cc b/chrome/browser/chromeos/gdata/drive_file_system.cc index 4538f18..658be16 100644 --- a/chrome/browser/chromeos/gdata/drive_file_system.cc +++ b/chrome/browser/chromeos/gdata/drive_file_system.cc @@ -2760,17 +2760,17 @@ void DriveFileSystem::AddUploadedFileOnUIThread( DCHECK(doc_entry.get()); const std::string& resource_id = doc_entry->resource_id(); - scoped_ptr<AddUploadedFileParams> params( + AddUploadedFileParams* params = new AddUploadedFileParams(upload_mode, directory_path, doc_entry.Pass(), file_content_path, cache_operation, - callback)); + callback); const FileMoveCallback file_move_callback = base::Bind(&DriveFileSystem::ContinueAddUploadedFile, - ui_weak_ptr_, base::Passed(¶ms)); + ui_weak_ptr_, params); if (upload_mode == UPLOAD_EXISTING_FILE) { // Remove the existing entry. @@ -2781,7 +2781,7 @@ void DriveFileSystem::AddUploadedFileOnUIThread( } void DriveFileSystem::ContinueAddUploadedFile( - scoped_ptr<AddUploadedFileParams> params, + AddUploadedFileParams* params, DriveFileError error, const FilePath& /* file_path */) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); @@ -2798,11 +2798,11 @@ void DriveFileSystem::ContinueAddUploadedFile( params->doc_entry.Pass(), base::Bind(&DriveFileSystem::AddUploadedFileToCache, ui_weak_ptr_, - base::Passed(¶ms))); + base::Owned(params))); } void DriveFileSystem::AddUploadedFileToCache( - scoped_ptr<AddUploadedFileParams> params, + AddUploadedFileParams* params, DriveFileError error, const FilePath& file_path) { DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); diff --git a/chrome/browser/chromeos/gdata/drive_file_system.h b/chrome/browser/chromeos/gdata/drive_file_system.h index a5edcf3..725ad6b 100644 --- a/chrome/browser/chromeos/gdata/drive_file_system.h +++ b/chrome/browser/chromeos/gdata/drive_file_system.h @@ -541,12 +541,12 @@ class DriveFileSystem : public DriveFileSystemInterface, const FilePath& directory_path); // Continues to add an uploaded file after existing entry has been deleted. - void ContinueAddUploadedFile(scoped_ptr<AddUploadedFileParams> params, + void ContinueAddUploadedFile(AddUploadedFileParams* params, DriveFileError error, const FilePath& file_path); // Adds the uploaded file to the cache. - void AddUploadedFileToCache(scoped_ptr<AddUploadedFileParams> params, + void AddUploadedFileToCache(AddUploadedFileParams* params, DriveFileError error, const FilePath& file_path); |