Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(110)

Side by Side Diff: Source/core/svg/animation/SVGSMILElement.cpp

Issue 262093006: Oilpan: Make the Node hierarchy RefCountedGarbageCollected instead of TreeShared. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Address more comments. Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 , m_baseID(baseID) 162 , m_baseID(baseID)
163 , m_name(name) 163 , m_name(name)
164 , m_offset(offset) 164 , m_offset(offset)
165 , m_repeat(repeat) 165 , m_repeat(repeat)
166 { 166 {
167 } 167 }
168 168
169 SVGSMILElement::SVGSMILElement(const QualifiedName& tagName, Document& doc) 169 SVGSMILElement::SVGSMILElement(const QualifiedName& tagName, Document& doc)
170 : SVGElement(tagName, doc) 170 : SVGElement(tagName, doc)
171 , m_attributeName(anyQName()) 171 , m_attributeName(anyQName())
172 , m_targetElement(0) 172 , m_targetElement(nullptr)
173 , m_syncBaseConditionsConnected(false) 173 , m_syncBaseConditionsConnected(false)
174 , m_hasEndEventConditions(false) 174 , m_hasEndEventConditions(false)
175 , m_isWaitingForFirstInterval(true) 175 , m_isWaitingForFirstInterval(true)
176 , m_intervalBegin(SMILTime::unresolved()) 176 , m_intervalBegin(SMILTime::unresolved())
177 , m_intervalEnd(SMILTime::unresolved()) 177 , m_intervalEnd(SMILTime::unresolved())
178 , m_previousIntervalBegin(SMILTime::unresolved()) 178 , m_previousIntervalBegin(SMILTime::unresolved())
179 , m_activeState(Inactive) 179 , m_activeState(Inactive)
180 , m_lastPercent(0) 180 , m_lastPercent(0)
181 , m_lastRepeat(0) 181 , m_lastRepeat(0)
182 , m_nextProgressTime(0) 182 , m_nextProgressTime(0)
183 , m_documentOrderIndex(0) 183 , m_documentOrderIndex(0)
184 , m_cachedDur(invalidCachedTime) 184 , m_cachedDur(invalidCachedTime)
185 , m_cachedRepeatDur(invalidCachedTime) 185 , m_cachedRepeatDur(invalidCachedTime)
186 , m_cachedRepeatCount(invalidCachedTime) 186 , m_cachedRepeatCount(invalidCachedTime)
187 , m_cachedMin(invalidCachedTime) 187 , m_cachedMin(invalidCachedTime)
188 , m_cachedMax(invalidCachedTime) 188 , m_cachedMax(invalidCachedTime)
189 { 189 {
190 resolveFirstInterval(); 190 resolveFirstInterval();
191 } 191 }
192 192
193 SVGSMILElement::~SVGSMILElement() 193 SVGSMILElement::~SVGSMILElement()
194 { 194 {
195 #if !ENABLE(OILPAN) 195 #if !ENABLE(OILPAN)
196 clearResourceAndEventBaseReferences(); 196 clearResourceAndEventBaseReferences();
197 #endif 197 #endif
198 smilEndEventSender().cancelEvent(this); 198 smilEndEventSender().cancelEvent(this);
199 smilBeginEventSender().cancelEvent(this); 199 smilBeginEventSender().cancelEvent(this);
200 smilRepeatEventSender().cancelEvent(this); 200 smilRepeatEventSender().cancelEvent(this);
201 smilRepeatNEventSender().cancelEvent(this); 201 smilRepeatNEventSender().cancelEvent(this);
202 #if !ENABLE(OILPAN)
202 clearConditions(); 203 clearConditions();
203 if (m_timeContainer && m_targetElement && hasValidAttributeName()) 204 if (m_timeContainer && m_targetElement && hasValidAttributeName())
204 m_timeContainer->unschedule(this, m_targetElement, m_attributeName); 205 m_timeContainer->unschedule(this, m_targetElement, m_attributeName);
206 #endif
205 } 207 }
206 208
207 void SVGSMILElement::clearResourceAndEventBaseReferences() 209 void SVGSMILElement::clearResourceAndEventBaseReferences()
208 { 210 {
209 document().accessSVGExtensions().removeAllTargetReferencesForElement(this); 211 document().accessSVGExtensions().removeAllTargetReferencesForElement(this);
210 } 212 }
211 213
212 void SVGSMILElement::clearConditions() 214 void SVGSMILElement::clearConditions()
213 { 215 {
214 disconnectSyncBaseConditions(); 216 disconnectSyncBaseConditions();
(...skipping 1108 matching lines...) Expand 10 before | Expand all | Expand 10 after
1323 const AtomicString& eventType = eventSender->eventType(); 1325 const AtomicString& eventType = eventSender->eventType();
1324 if (eventType == "repeatn") { 1326 if (eventType == "repeatn") {
1325 unsigned repeatEventCount = m_repeatEventCountList.first(); 1327 unsigned repeatEventCount = m_repeatEventCountList.first();
1326 m_repeatEventCountList.remove(0); 1328 m_repeatEventCountList.remove(0);
1327 dispatchEvent(RepeatEvent::create(eventType, repeatEventCount)); 1329 dispatchEvent(RepeatEvent::create(eventType, repeatEventCount));
1328 } else { 1330 } else {
1329 dispatchEvent(Event::create(eventType)); 1331 dispatchEvent(Event::create(eventType));
1330 } 1332 }
1331 } 1333 }
1332 1334
1335 void SVGSMILElement::trace(Visitor* visitor)
1336 {
1337 visitor->trace(m_targetElement);
1338 SVGElement::trace(visitor);
1333 } 1339 }
1340
1341 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698