diff options
author | vitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-12 11:06:28 +0000 |
---|---|---|
committer | vitalybuka@chromium.org <vitalybuka@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-12 11:06:28 +0000 |
commit | cdcee3e4d01e2869a94a2747bf9555a98aa8f030 (patch) | |
tree | 3e48c7ad19a42361ca8ac329ceb19f8244a4acc6 /chrome/browser/printing | |
parent | 9628129a0e0177b8308f5b478a9c2cebeab4c8c6 (diff) | |
download | chromium_src-cdcee3e4d01e2869a94a2747bf9555a98aa8f030.zip chromium_src-cdcee3e4d01e2869a94a2747bf9555a98aa8f030.tar.gz chromium_src-cdcee3e4d01e2869a94a2747bf9555a98aa8f030.tar.bz2 |
Fix crashe in PrintJob if Stop() called twice.
BUG=342398
Review URL: https://codereview.chromium.org/144463018
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@250676 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/printing')
-rw-r--r-- | chrome/browser/printing/print_job.cc | 9 | ||||
-rw-r--r-- | chrome/browser/printing/print_job.h | 2 |
2 files changed, 3 insertions, 8 deletions
diff --git a/chrome/browser/printing/print_job.cc b/chrome/browser/printing/print_job.cc index 78d49c7..0171951 100644 --- a/chrome/browser/printing/print_job.cc +++ b/chrome/browser/printing/print_job.cc @@ -37,8 +37,7 @@ PrintJob::PrintJob() settings_(), is_job_pending_(false), is_canceling_(false), - quit_factory_(this), - weak_ptr_factory_(this) { + quit_factory_(this) { DCHECK(ui_message_loop_); // This is normally a UI message loop, but in unit tests, the message loop is // of the 'default' type. @@ -329,14 +328,12 @@ void PrintJob::ControlledWorkerShutdown() { // thread because it may block. base::WorkerPool::PostTaskAndReply( FROM_HERE, - base::Bind(&PrintJobWorker::Stop, - base::Unretained(worker_.get())), + base::Bind(&PrintJobWorker::Stop, base::Unretained(worker_.get())), base::Bind(&PrintJob::HoldUntilStopIsCalled, this), false); is_job_pending_ = false; - registrar_.Remove(this, chrome::NOTIFICATION_PRINT_JOB_EVENT, - content::Source<PrintJob>(this)); + registrar_.RemoveAll(); UpdatePrintedDocument(NULL); } diff --git a/chrome/browser/printing/print_job.h b/chrome/browser/printing/print_job.h index 69ff756..2ff827a 100644 --- a/chrome/browser/printing/print_job.h +++ b/chrome/browser/printing/print_job.h @@ -145,8 +145,6 @@ class PrintJob : public PrintJobWorkerOwner, // Used at shutdown so that we can quit a nested message loop. base::WeakPtrFactory<PrintJob> quit_factory_; - base::WeakPtrFactory<PrintJob> weak_ptr_factory_; - DISALLOW_COPY_AND_ASSIGN(PrintJob); }; |