Sometimes, DoDelayedWork() is called after MessagePumpForUIEfl is released.
In such case, |schedule_delayed_work_timer_| may be already deleted. So,
check whether |pipe_| is nullptr or not to avoid crash.
Change-Id: Ia2874e6680011d9c90739763b3bf9ee531ef0e37
Signed-off-by: jiangyuwei <yuwei.jiang@samsung.com>
}
void MessagePumpForUIEfl::DoDelayedWork() {
- if (!schedule_delayed_work_timer_)
- LOG(INFO) << __FUNCTION__;
+ // Sometimes, DoDelayedWork() is called after MessagePumpForUIEfl is released.
+ // In such case, |schedule_delayed_work_timer_| may be already deleted. So,
+ // check whether |pipe_| is nullptr or not to avoid crash.
+ if (!pipe_) {
+ LOG(ERROR) << "MessagePumpForUIEfl is already released";
+ return;
+ }
Delegate::NextWorkInfo next_work_info = delegate_->DoWork();
if (!next_work_info.delayed_run_time.is_max())
ScheduleDelayedWork(next_work_info);