| Index: Source/WebCore/svg/SVGDocumentExtensions.cpp | 
| =================================================================== | 
| --- Source/WebCore/svg/SVGDocumentExtensions.cpp	(revision 122881) | 
| +++ Source/WebCore/svg/SVGDocumentExtensions.cpp	(working copy) | 
| @@ -169,14 +169,20 @@ | 
| void SVGDocumentExtensions::removeAllAnimationElementsFromTarget(SVGElement* targetElement) | 
| { | 
| ASSERT(targetElement); | 
| -    HashSet<SVGSMILElement*>* animationElementsForTarget = m_animatedElements.take(targetElement); | 
| -    if (!animationElementsForTarget) | 
| +    HashMap<SVGElement*, HashSet<SVGSMILElement*>* >::iterator it = m_animatedElements.find(targetElement); | 
| +    if (it == m_animatedElements.end()) | 
| return; | 
| -    HashSet<SVGSMILElement*>::iterator it = animationElementsForTarget->begin(); | 
| + | 
| +    HashSet<SVGSMILElement*>* animationElementsForTarget = it->second; | 
| +    Vector<SVGSMILElement*> toBeReset; | 
| + | 
| HashSet<SVGSMILElement*>::iterator end = animationElementsForTarget->end(); | 
| -    for (; it != end; ++it) | 
| -        (*it)->resetTargetElement(); | 
| -    delete animationElementsForTarget; | 
| +    for (HashSet<SVGSMILElement*>::iterator it = animationElementsForTarget->begin(); it != end; ++it) | 
| +        toBeReset.append(*it); | 
| + | 
| +    Vector<SVGSMILElement*>::iterator vectorEnd = toBeReset.end(); | 
| +    for (Vector<SVGSMILElement*>::iterator vectorIt = toBeReset.begin(); vectorIt != vectorEnd; ++vectorIt) | 
| +        (*vectorIt)->resetTargetElement(); | 
| } | 
|  | 
| // FIXME: Callers should probably use ScriptController::eventHandlerLineNumber() | 
|  |