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()); |
dcheng
2016/12/15 06:47:36
I would prefer we limit the API changes here to be
fdoray
2016/12/15 16:39:31
Done.
|
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() { |