OSDN Git Service

Merge WebKit at r78450: Initial merge by git.
[android-x86/external-webkit.git] / Source / WebCore / page / SuspendableTimer.cpp
index 23f00b0..2a4d2e5 100644 (file)
@@ -36,6 +36,7 @@ SuspendableTimer::SuspendableTimer(ScriptExecutionContext* context)
     , m_nextFireInterval(0)
     , m_repeatInterval(0)
 #if !ASSERT_DISABLED
+    , m_active(false)
     , m_suspended(false)
 #endif
 {
@@ -61,9 +62,12 @@ void SuspendableTimer::suspend(ReasonForSuspension)
     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 @@ 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