| OLD | NEW | 
|    1 /* |    1 /* | 
|    2  * Copyright (C) 2006, 2008 Apple Inc. All rights reserved. |    2  * Copyright (C) 2006, 2008 Apple Inc. All rights reserved. | 
|    3  * Copyright (C) 2009 Google Inc. All rights reserved. |    3  * Copyright (C) 2009 Google Inc. All rights reserved. | 
|    4  * |    4  * | 
|    5  * Redistribution and use in source and binary forms, with or without |    5  * Redistribution and use in source and binary forms, with or without | 
|    6  * modification, are permitted provided that the following conditions |    6  * modification, are permitted provided that the following conditions | 
|    7  * are met: |    7  * are met: | 
|    8  * 1. Redistributions of source code must retain the above copyright |    8  * 1. Redistributions of source code must retain the above copyright | 
|    9  *    notice, this list of conditions and the following disclaimer. |    9  *    notice, this list of conditions and the following disclaimer. | 
|   10  * 2. Redistributions in binary form must reproduce the above copyright |   10  * 2. Redistributions in binary form must reproduce the above copyright | 
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  115     // Do a re-entrancy check. |  115     // Do a re-entrancy check. | 
|  116     if (m_firingTimers) |  116     if (m_firingTimers) | 
|  117         return; |  117         return; | 
|  118     m_firingTimers = true; |  118     m_firingTimers = true; | 
|  119     m_pendingSharedTimerFireTime = 0; |  119     m_pendingSharedTimerFireTime = 0; | 
|  120  |  120  | 
|  121     double fireTime = monotonicallyIncreasingTime(); |  121     double fireTime = monotonicallyIncreasingTime(); | 
|  122     double timeToQuit = fireTime + maxDurationOfFiringTimers; |  122     double timeToQuit = fireTime + maxDurationOfFiringTimers; | 
|  123  |  123  | 
|  124     while (!m_timerHeap.isEmpty() && m_timerHeap.first()->m_nextFireTime <= fire
     Time) { |  124     while (!m_timerHeap.isEmpty() && m_timerHeap.first()->m_nextFireTime <= fire
     Time) { | 
|  125         TimerBase* timer = m_timerHeap.first(); |  125         TimerBase& timer = *m_timerHeap.first(); | 
|  126         timer->m_nextFireTime = 0; |  126         timer.m_nextFireTime = 0; | 
|  127         timer->m_unalignedNextFireTime = 0; |  127         timer.m_unalignedNextFireTime = 0; | 
|  128         timer->heapDeleteMin(); |  128         timer.heapDeleteMin(); | 
|  129  |  129  | 
|  130         double interval = timer->repeatInterval(); |  130         double interval = timer.repeatInterval(); | 
|  131         timer->setNextFireTime(interval ? fireTime + interval : 0); |  131         timer.setNextFireTime(interval ? fireTime + interval : 0); | 
 |  132  | 
 |  133         TRACE_EVENT2("blink", "ThreadTimers::sharedTimerFiredInternal", | 
 |  134             "src_file", timer.location().fileName(), | 
 |  135             "src_func", timer.location().functionName()); | 
|  132  |  136  | 
|  133         // Once the timer has been fired, it may be deleted, so do nothing else 
     with it after this point. |  137         // Once the timer has been fired, it may be deleted, so do nothing else 
     with it after this point. | 
|  134         timer->fired(); |  138         timer.fired(); | 
|  135  |  139  | 
|  136         // Catch the case where the timer asked timers to fire in a nested event
      loop, or we are over time limit. |  140         // Catch the case where the timer asked timers to fire in a nested event
      loop, or we are over time limit. | 
|  137         if (!m_firingTimers || timeToQuit < monotonicallyIncreasingTime()) |  141         if (!m_firingTimers || timeToQuit < monotonicallyIncreasingTime()) | 
|  138             break; |  142             break; | 
|  139     } |  143     } | 
|  140  |  144  | 
|  141     m_firingTimers = false; |  145     m_firingTimers = false; | 
|  142  |  146  | 
|  143     updateSharedTimer(); |  147     updateSharedTimer(); | 
|  144 } |  148 } | 
|  145  |  149  | 
|  146 void ThreadTimers::fireTimersInNestedEventLoop() |  150 void ThreadTimers::fireTimersInNestedEventLoop() | 
|  147 { |  151 { | 
|  148     // Reset the reentrancy guard so the timers can fire again. |  152     // Reset the reentrancy guard so the timers can fire again. | 
|  149     m_firingTimers = false; |  153     m_firingTimers = false; | 
|  150     updateSharedTimer(); |  154     updateSharedTimer(); | 
|  151 } |  155 } | 
|  152  |  156  | 
|  153 } // namespace WebCore |  157 } // namespace WebCore | 
|  154  |  158  | 
| OLD | NEW |