Index: Source/WebCore/page/SuspendableTimer.cpp |
=================================================================== |
--- Source/WebCore/page/SuspendableTimer.cpp (revision 77575) |
+++ Source/WebCore/page/SuspendableTimer.cpp (working copy) |
@@ -36,6 +36,7 @@ |
, m_nextFireInterval(0) |
, m_repeatInterval(0) |
#if !ASSERT_DISABLED |
+ , m_active(false) |
, m_suspended(false) |
#endif |
{ |
@@ -61,9 +62,12 @@ |
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() |
@@ -72,7 +76,8 @@ |
ASSERT(m_suspended); |
m_suspended = false; |
#endif |
- start(m_nextFireInterval, m_repeatInterval); |
+ if (m_active) |
+ start(m_nextFireInterval, m_repeatInterval); |
} |
bool SuspendableTimer::canSuspend() const |