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

Side by Side Diff: Source/core/svg/SVGAnimateElement.cpp

Issue 267303004: Oilpan: cleanup based on review comments after removal of TreeShared. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix typo and merge 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) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org> 2 * Copyright (C) 2004, 2005 Nikolas Zimmermann <zimmermann@kde.org>
3 * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org> 3 * Copyright (C) 2004, 2005, 2006 Rob Buis <buis@kde.org>
4 * Copyright (C) 2008 Apple Inc. All rights reserved. 4 * Copyright (C) 2008 Apple Inc. All rights reserved.
5 * Copyright (C) Research In Motion Limited 2011. All rights reserved. 5 * Copyright (C) Research In Motion Limited 2011. All rights reserved.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
143 143
144 namespace { 144 namespace {
145 145
146 Vector<SVGElement*> findElementInstances(SVGElement* targetElement) 146 Vector<SVGElement*> findElementInstances(SVGElement* targetElement)
147 { 147 {
148 ASSERT(targetElement); 148 ASSERT(targetElement);
149 Vector<SVGElement*> animatedElements; 149 Vector<SVGElement*> animatedElements;
150 150
151 animatedElements.append(targetElement); 151 animatedElements.append(targetElement);
152 152
153 const HashSet<SVGElement*>& instances = targetElement->instancesForElement() ; 153 const WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement> >& instances = ta rgetElement->instancesForElement();
154 const HashSet<SVGElement*>::const_iterator end = instances.end(); 154 const WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement> >::const_iterator end = instances.end();
155 for (HashSet<SVGElement*>::const_iterator it = instances.begin(); it != end; ++it) { 155 for (WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement> >::const_iterator it = instances.begin(); it != end; ++it) {
156 if (SVGElement* shadowTreeElement = *it) 156 if (SVGElement* shadowTreeElement = *it)
157 animatedElements.append(shadowTreeElement); 157 animatedElements.append(shadowTreeElement);
158 } 158 }
159 159
160 return animatedElements; 160 return animatedElements;
161 } 161 }
162 162
163 } 163 }
164 164
165 void SVGAnimateElement::resetAnimatedType() 165 void SVGAnimateElement::resetAnimatedType()
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 ASSERT(targetElement); 230 ASSERT(targetElement);
231 if (attributeName == anyQName() || !targetElement->inDocument() || !targetEl ement->parentNode()) 231 if (attributeName == anyQName() || !targetElement->inDocument() || !targetEl ement->parentNode())
232 return; 232 return;
233 233
234 CSSPropertyID id = cssPropertyID(attributeName.localName()); 234 CSSPropertyID id = cssPropertyID(attributeName.localName());
235 235
236 SVGElement::InstanceUpdateBlocker blocker(targetElement); 236 SVGElement::InstanceUpdateBlocker blocker(targetElement);
237 applyCSSPropertyToTarget(targetElement, id, valueAsString); 237 applyCSSPropertyToTarget(targetElement, id, valueAsString);
238 238
239 // If the target element has instances, update them as well, w/o requiring t he <use> tree to be rebuilt. 239 // If the target element has instances, update them as well, w/o requiring t he <use> tree to be rebuilt.
240 const HashSet<SVGElement*>& instances = targetElement->instancesForElement() ; 240 const WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement> >& instances = ta rgetElement->instancesForElement();
241 const HashSet<SVGElement*>::const_iterator end = instances.end(); 241 const WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement> >::const_iterator end = instances.end();
242 for (HashSet<SVGElement*>::const_iterator it = instances.begin(); it != end; ++it) { 242 for (WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement> >::const_iterator it = instances.begin(); it != end; ++it) {
243 if (SVGElement* shadowTreeElement = *it) 243 if (SVGElement* shadowTreeElement = *it)
244 applyCSSPropertyToTarget(shadowTreeElement, id, valueAsString); 244 applyCSSPropertyToTarget(shadowTreeElement, id, valueAsString);
245 } 245 }
246 } 246 }
247 247
248 static inline void removeCSSPropertyFromTargetAndInstances(SVGElement* targetEle ment, const QualifiedName& attributeName) 248 static inline void removeCSSPropertyFromTargetAndInstances(SVGElement* targetEle ment, const QualifiedName& attributeName)
249 { 249 {
250 ASSERT(targetElement); 250 ASSERT(targetElement);
251 if (attributeName == anyQName() || !targetElement->inDocument() || !targetEl ement->parentNode()) 251 if (attributeName == anyQName() || !targetElement->inDocument() || !targetEl ement->parentNode())
252 return; 252 return;
253 253
254 CSSPropertyID id = cssPropertyID(attributeName.localName()); 254 CSSPropertyID id = cssPropertyID(attributeName.localName());
255 255
256 SVGElement::InstanceUpdateBlocker blocker(targetElement); 256 SVGElement::InstanceUpdateBlocker blocker(targetElement);
257 removeCSSPropertyFromTarget(targetElement, id); 257 removeCSSPropertyFromTarget(targetElement, id);
258 258
259 // If the target element has instances, update them as well, w/o requiring t he <use> tree to be rebuilt. 259 // If the target element has instances, update them as well, w/o requiring t he <use> tree to be rebuilt.
260 const HashSet<SVGElement*>& instances = targetElement->instancesForElement() ; 260 const WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement> >& instances = ta rgetElement->instancesForElement();
261 const HashSet<SVGElement*>::const_iterator end = instances.end(); 261 const WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement> >::const_iterator end = instances.end();
262 for (HashSet<SVGElement*>::const_iterator it = instances.begin(); it != end; ++it) { 262 for (WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement> >::const_iterator it = instances.begin(); it != end; ++it) {
263 if (SVGElement* shadowTreeElement = *it) 263 if (SVGElement* shadowTreeElement = *it)
264 removeCSSPropertyFromTarget(shadowTreeElement, id); 264 removeCSSPropertyFromTarget(shadowTreeElement, id);
265 } 265 }
266 } 266 }
267 267
268 static inline void notifyTargetAboutAnimValChange(SVGElement* targetElement, con st QualifiedName& attributeName) 268 static inline void notifyTargetAboutAnimValChange(SVGElement* targetElement, con st QualifiedName& attributeName)
269 { 269 {
270 #if !ENABLE(OILPAN) 270 #if !ENABLE(OILPAN)
271 ASSERT_WITH_SECURITY_IMPLICATION(!targetElement->m_deletionHasBegun); 271 ASSERT_WITH_SECURITY_IMPLICATION(!targetElement->m_deletionHasBegun);
272 #endif 272 #endif
273 targetElement->invalidateSVGAttributes(); 273 targetElement->invalidateSVGAttributes();
274 targetElement->svgAttributeChanged(attributeName); 274 targetElement->svgAttributeChanged(attributeName);
275 } 275 }
276 276
277 static inline void notifyTargetAndInstancesAboutAnimValChange(SVGElement* target Element, const QualifiedName& attributeName) 277 static inline void notifyTargetAndInstancesAboutAnimValChange(SVGElement* target Element, const QualifiedName& attributeName)
278 { 278 {
279 ASSERT(targetElement); 279 ASSERT(targetElement);
280 if (attributeName == anyQName() || !targetElement->inDocument() || !targetEl ement->parentNode()) 280 if (attributeName == anyQName() || !targetElement->inDocument() || !targetEl ement->parentNode())
281 return; 281 return;
282 282
283 SVGElement::InstanceUpdateBlocker blocker(targetElement); 283 SVGElement::InstanceUpdateBlocker blocker(targetElement);
284 notifyTargetAboutAnimValChange(targetElement, attributeName); 284 notifyTargetAboutAnimValChange(targetElement, attributeName);
285 285
286 // If the target element has instances, update them as well, w/o requiring t he <use> tree to be rebuilt. 286 // If the target element has instances, update them as well, w/o requiring t he <use> tree to be rebuilt.
287 const HashSet<SVGElement*>& instances = targetElement->instancesForElement() ; 287 const WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement> >& instances = ta rgetElement->instancesForElement();
288 const HashSet<SVGElement*>::const_iterator end = instances.end(); 288 const WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement> >::const_iterator end = instances.end();
289 for (HashSet<SVGElement*>::const_iterator it = instances.begin(); it != end; ++it) { 289 for (WillBeHeapHashSet<RawPtrWillBeWeakMember<SVGElement> >::const_iterator it = instances.begin(); it != end; ++it) {
290 if (SVGElement* shadowTreeElement = *it) 290 if (SVGElement* shadowTreeElement = *it)
291 notifyTargetAboutAnimValChange(shadowTreeElement, attributeName); 291 notifyTargetAboutAnimValChange(shadowTreeElement, attributeName);
292 } 292 }
293 } 293 }
294 294
295 void SVGAnimateElement::clearAnimatedType(SVGElement* targetElement) 295 void SVGAnimateElement::clearAnimatedType(SVGElement* targetElement)
296 { 296 {
297 if (!m_animatedProperty) 297 if (!m_animatedProperty)
298 return; 298 return;
299 299
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 400
401 SVGAnimatedTypeAnimator* SVGAnimateElement::ensureAnimator() 401 SVGAnimatedTypeAnimator* SVGAnimateElement::ensureAnimator()
402 { 402 {
403 if (!m_animator) 403 if (!m_animator)
404 m_animator = SVGAnimatedTypeAnimator::create(m_animatedPropertyType, thi s, targetElement()); 404 m_animator = SVGAnimatedTypeAnimator::create(m_animatedPropertyType, thi s, targetElement());
405 ASSERT(m_animatedPropertyType == m_animator->type()); 405 ASSERT(m_animatedPropertyType == m_animator->type());
406 return m_animator.get(); 406 return m_animator.get();
407 } 407 }
408 408
409 } 409 }
OLDNEW
« no previous file with comments | « Source/core/html/HTMLFormControlElement.cpp ('k') | Source/core/svg/SVGAnimateMotionElement.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698