Index: chrome/profile_import/profile_import_thread.cc |
=================================================================== |
--- chrome/profile_import/profile_import_thread.cc (revision 62042) |
+++ chrome/profile_import/profile_import_thread.cc (working copy) |
@@ -32,8 +32,6 @@ |
ChildProcess::current()->AddRefProcess(); // Balanced in Cleanup(). |
} |
-ProfileImportThread::~ProfileImportThread() {} |
- |
void ProfileImportThread::OnControlMessageReceived(const IPC::Message& msg) { |
IPC_BEGIN_MESSAGE_MAP(ProfileImportThread, msg) |
IPC_MESSAGE_HANDLER(ProfileImportProcessMsg_StartImport, |
@@ -51,6 +49,7 @@ |
const DictionaryValue& localized_strings, |
bool import_to_bookmark_bar) { |
bridge_ = new ExternalProcessImporterBridge(this, localized_strings); |
+ bridge_->AddRef(); // Balanced in Cleanup(). |
ImporterList importer_list; |
importer_ = importer_list.CreateImporterByType(profile_info.browser_type); |
@@ -60,6 +59,7 @@ |
return; |
} |
+ importer_->AddRef(); // Balanced in Cleanup(). |
importer_->set_import_to_bookmark_bar(import_to_bookmark_bar); |
items_to_import_ = items; |
@@ -71,14 +71,9 @@ |
NOTREACHED(); |
Cleanup(); |
} |
- import_thread_->message_loop()->PostTask( |
- FROM_HERE, |
- NewRunnableMethod( |
- importer_.get(), |
- &Importer::StartImport, |
- profile_info, |
- items, |
- bridge_)); |
+ import_thread_->message_loop()->PostTask(FROM_HERE, |
+ NewRunnableMethod(importer_, &Importer::StartImport, |
+ profile_info, items, bridge_)); |
} |
void ProfileImportThread::OnImportCancel() { |
@@ -189,7 +184,7 @@ |
void ProfileImportThread::Cleanup() { |
importer_->Cancel(); |
- importer_ = NULL; |
- bridge_ = NULL; |
+ importer_->Release(); |
+ bridge_->Release(); |
ChildProcess::current()->ReleaseProcess(); |
} |