| 355 | } |
| 356 | |
| 357 | void Node::setScheduler(Scheduler* var) { |
| 358 | AssertUnless(var, "set invalid scheduler(nullptr) to node."); |
| 359 | auto oldScheduler = _scheduler.get(); |
| 360 | if (_flags.isOn(Node::Updating)) { |
| 361 | if (_updateItem && _updateItem->scheduled()) { |
| 362 | oldScheduler->unschedule(_updateItem->scheduledItem.get()); |
| 363 | } |
| 364 | var->schedule(getUpdateItem()->scheduledItem.get()); |
| 365 | } |
| 366 | if (_flags.isOn(Node::FixedUpdating)) { |
| 367 | if (_updateItem && _updateItem->fixedScheduled()) { |
| 368 | oldScheduler->unscheduleFixed(_updateItem->fixedScheduledItem.get()); |
| 369 | } |
| 370 | var->scheduleFixed(getFixedScheduledItem()); |
| 371 | } |
| 372 | pauseActionInList(_action); |
| 373 | _scheduler = var; |
| 374 | resumeActionInList(_action); |
| 375 | } |
| 376 | |
| 377 | Scheduler* Node::getScheduler() const noexcept { |
| 378 | return _scheduler; |
no test coverage detected