void SVGSMILElement::parseAttribute(const QualifiedName& name, const AtomicString& oldValue, const AtomicString& value) { if (name == SVGNames::beginAttr) { if (!m_conditions.isEmpty()) { clearConditions(); parseBeginOrEnd(fastGetAttribute(SVGNames::endAttr), End); } parseBeginOrEnd(value.getString(), Begin); if (inDocument()) connectSyncBaseConditions(); } else if (name == SVGNames::endAttr) { if (!m_conditions.isEmpty()) { clearConditions(); parseBeginOrEnd(fastGetAttribute(SVGNames::beginAttr), Begin); } parseBeginOrEnd(value.getString(), End); if (inDocument()) connectSyncBaseConditions(); } else if (name == SVGNames::onbeginAttr) { setAttributeEventListener(EventTypeNames::beginEvent, createAttributeEventListener(this, name, value, eventParameterName())); } else if (name == SVGNames::onendAttr) { setAttributeEventListener(EventTypeNames::endEvent, createAttributeEventListener(this, name, value, eventParameterName())); } else if (name == SVGNames::onrepeatAttr) { setAttributeEventListener(EventTypeNames::repeatEvent, createAttributeEventListener(this, name, value, eventParameterName())); } else { SVGElement::parseAttribute(name, oldValue, value); } }
void SVGSMILElement::removedFrom(ContainerNode* rootParent) { if (rootParent->isConnected()) { clearResourceAndEventBaseReferences(); clearConditions(); setTargetElement(nullptr); setAttributeName(anyQName()); animationAttributeChanged(); m_timeContainer = nullptr; } SVGElement::removedFrom(rootParent); }
SVGSMILElement::~SVGSMILElement() { #if !ENABLE(OILPAN) clearResourceAndEventBaseReferences(); smilEndEventSender().cancelEvent(this); smilBeginEventSender().cancelEvent(this); smilRepeatEventSender().cancelEvent(this); smilRepeatNEventSender().cancelEvent(this); clearConditions(); unscheduleIfScheduled(); #endif }
SVGSMILElement::~SVGSMILElement() { #if !ENABLE(OILPAN) clearResourceAndEventBaseReferences(); #endif smilEndEventSender().cancelEvent(this); smilBeginEventSender().cancelEvent(this); smilRepeatEventSender().cancelEvent(this); smilRepeatNEventSender().cancelEvent(this); #if !ENABLE(OILPAN) clearConditions(); if (m_timeContainer && m_targetElement && hasValidAttributeName()) m_timeContainer->unschedule(this, m_targetElement, m_attributeName); #endif }
void LogEventsMngr::clearLogEvents() { logCurrent = logCounter = 0; arelogevents = false; for (int i = 0; i < MAX_LOGARGS + 1; ++i) { CLogEvent **a = &logevents[i]; while (*a) { CLogEvent* bb = (*a)->next; delete *a; *a = bb; } } clearConditions(); }