diff options
| -rw-r--r-- | services/surfaceflinger/Scheduler/RefreshRateSelector.cpp | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/services/surfaceflinger/Scheduler/RefreshRateSelector.cpp b/services/surfaceflinger/Scheduler/RefreshRateSelector.cpp index 28fa036b09..ab9014e418 100644 --- a/services/surfaceflinger/Scheduler/RefreshRateSelector.cpp +++ b/services/surfaceflinger/Scheduler/RefreshRateSelector.cpp @@ -1395,13 +1395,14 @@ auto RefreshRateSelector::setPolicy(const PolicyVariant& policy) -> SetPolicyRes const auto& idleScreenConfigOpt = getCurrentPolicyLocked()->idleScreenConfigOpt; if (idleScreenConfigOpt != oldPolicy.idleScreenConfigOpt) { if (!idleScreenConfigOpt.has_value()) { - // fallback to legacy timer if existed, otherwise pause the old timer - LOG_ALWAYS_FATAL_IF(!mIdleTimer); - if (mConfig.legacyIdleTimerTimeout > 0ms) { - mIdleTimer->setInterval(mConfig.legacyIdleTimerTimeout); - mIdleTimer->resume(); - } else { - mIdleTimer->pause(); + if (mIdleTimer) { + // fallback to legacy timer if existed, otherwise pause the old timer + if (mConfig.legacyIdleTimerTimeout > 0ms) { + mIdleTimer->setInterval(mConfig.legacyIdleTimerTimeout); + mIdleTimer->resume(); + } else { + mIdleTimer->pause(); + } } } else if (idleScreenConfigOpt->timeoutMillis > 0) { // create a new timer or reconfigure |