void SMILTimeContainer::schedule(SVGSMILElement* animation, SVGElement* target, const QualifiedName& attributeName) { ASSERT(animation->timeContainer() == this); ASSERT(target); ASSERT(animation->hasValidAttributeName()); #ifndef NDEBUG ASSERT(!m_preventScheduledAnimationsChanges); #endif ElementAttributePair key(target, attributeName); AnimationsVector* scheduled = m_scheduledAnimations.get(key); if (!scheduled) { scheduled = new AnimationsVector(); m_scheduledAnimations.set(key, scheduled); } ASSERT(!scheduled->contains(animation)); scheduled->append(animation); SMILTime nextFireTime = animation->nextProgressTime(); if (nextFireTime.isFinite()) notifyIntervalsChanged(); }