OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008 Apple Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
6 * are met: | 6 * are met: |
7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
(...skipping 1219 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1230 | 1230 |
1231 m_nextProgressTime = calculateNextProgressTime(elapsed); | 1231 m_nextProgressTime = calculateNextProgressTime(elapsed); |
1232 return animationIsContributing; | 1232 return animationIsContributing; |
1233 } | 1233 } |
1234 | 1234 |
1235 void SVGSMILElement::notifyDependentsIntervalChanged() | 1235 void SVGSMILElement::notifyDependentsIntervalChanged() |
1236 { | 1236 { |
1237 ASSERT(m_interval.begin.isFinite()); | 1237 ASSERT(m_interval.begin.isFinite()); |
1238 // |loopBreaker| is used to avoid infinite recursions which may be caused fr
om: | 1238 // |loopBreaker| is used to avoid infinite recursions which may be caused fr
om: |
1239 // |notifyDependentsIntervalChanged| -> |createInstanceTimesFromSyncbase| ->
|add{Begin,End}Time| -> |{begin,end}TimeChanged| -> |notifyDependentsIntervalCh
anged| | 1239 // |notifyDependentsIntervalChanged| -> |createInstanceTimesFromSyncbase| ->
|add{Begin,End}Time| -> |{begin,end}TimeChanged| -> |notifyDependentsIntervalCh
anged| |
1240 // |loopBreaker| is defined as a Persistent<HeapHashSet<Member<SVGSMILElemen
t> > >. This won't cause leaks because it is guaranteed to be empty after the ro
ot |notifyDependentsIntervalChanged| has exited. | 1240 // |loopBreaker| is defined as a Persistent<HeapHashSet<Member<SVGSMILElemen
t>>>. This won't cause leaks because it is guaranteed to be empty after the root
|notifyDependentsIntervalChanged| has exited. |
1241 DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<WillBeHeapHashSet<RawPtrWillBeMem
ber<SVGSMILElement>>>, loopBreaker, (adoptPtrWillBeNoop(new WillBeHeapHashSet<Ra
wPtrWillBeMember<SVGSMILElement>>()))); | 1241 DEFINE_STATIC_LOCAL(OwnPtrWillBePersistent<WillBeHeapHashSet<RawPtrWillBeMem
ber<SVGSMILElement>>>, loopBreaker, (adoptPtrWillBeNoop(new WillBeHeapHashSet<Ra
wPtrWillBeMember<SVGSMILElement>>()))); |
1242 if (!loopBreaker->add(this).isNewEntry) | 1242 if (!loopBreaker->add(this).isNewEntry) |
1243 return; | 1243 return; |
1244 | 1244 |
1245 for (SVGSMILElement* element : m_syncBaseDependents) | 1245 for (SVGSMILElement* element : m_syncBaseDependents) |
1246 element->createInstanceTimesFromSyncbase(this); | 1246 element->createInstanceTimesFromSyncbase(this); |
1247 | 1247 |
1248 loopBreaker->remove(this); | 1248 loopBreaker->remove(this); |
1249 } | 1249 } |
1250 | 1250 |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1372 visitor->trace(m_targetElement); | 1372 visitor->trace(m_targetElement); |
1373 visitor->trace(m_timeContainer); | 1373 visitor->trace(m_timeContainer); |
1374 visitor->trace(m_conditions); | 1374 visitor->trace(m_conditions); |
1375 visitor->trace(m_syncBaseDependents); | 1375 visitor->trace(m_syncBaseDependents); |
1376 #endif | 1376 #endif |
1377 SVGElement::trace(visitor); | 1377 SVGElement::trace(visitor); |
1378 SVGTests::trace(visitor); | 1378 SVGTests::trace(visitor); |
1379 } | 1379 } |
1380 | 1380 |
1381 } // namespace blink | 1381 } // namespace blink |
OLD | NEW |