, m_nextFireInterval(0)
, m_repeatInterval(0)
#if !ASSERT_DISABLED
+ , m_active(false)
, m_suspended(false)
#endif
{
ASSERT(!m_suspended);
m_suspended = true;
#endif
- m_nextFireInterval = nextFireInterval();
- m_repeatInterval = repeatInterval();
- TimerBase::stop();
+ m_active = isActive();
+ if (m_active) {
+ m_nextFireInterval = nextFireInterval();
+ m_repeatInterval = repeatInterval();
+ TimerBase::stop();
+ }
}
void SuspendableTimer::resume()
ASSERT(m_suspended);
m_suspended = false;
#endif
- start(m_nextFireInterval, m_repeatInterval);
+ if (m_active)
+ start(m_nextFireInterval, m_repeatInterval);
}
bool SuspendableTimer::canSuspend() const