| Index: base/message_loop/message_loop.cc
|
| diff --git a/base/message_loop/message_loop.cc b/base/message_loop/message_loop.cc
|
| index 1581f6cfb4b494b543a4574c2ca786f18f631188..671d2066be9509e87b7cdd94418b71f7ecef6516 100644
|
| --- a/base/message_loop/message_loop.cc
|
| +++ b/base/message_loop/message_loop.cc
|
| @@ -357,7 +357,7 @@ std::string MessageLoop::GetThreadName() const {
|
| void MessageLoop::SetTaskRunner(
|
| scoped_refptr<SingleThreadTaskRunner> task_runner) {
|
| DCHECK_EQ(this, current());
|
| - DCHECK(task_runner->BelongsToCurrentThread());
|
| + DCHECK(!task_runner || task_runner->BelongsToCurrentThread());
|
| DCHECK(!unbound_task_runner_);
|
| task_runner_ = std::move(task_runner);
|
| SetThreadTaskRunnerHandle();
|
| @@ -368,7 +368,8 @@ void MessageLoop::SetThreadTaskRunnerHandle() {
|
| // Clear the previous thread task runner first, because only one can exist at
|
| // a time.
|
| thread_task_runner_handle_.reset();
|
| - thread_task_runner_handle_.reset(new ThreadTaskRunnerHandle(task_runner_));
|
| + if (task_runner_)
|
| + thread_task_runner_handle_.reset(new ThreadTaskRunnerHandle(task_runner_));
|
| }
|
|
|
| void MessageLoop::RunHandler() {
|
|
|