Title: [118393] trunk/Source/WebCore
Revision
118393
Author
[email protected]
Date
2012-05-24 11:03:22 -0700 (Thu, 24 May 2012)

Log Message

SVGElement::addEventListener has peculiar RefPtr usage
https://bugs.webkit.org/show_bug.cgi?id=86497

Reviewed by Andy Estes.

* svg/SVGElement.cpp:
(WebCore::SVGElement::addEventListener): Switch to a more-standard style of RefPtr usage,
getting rid of some unneeded reference count churn; also removed an unneeded special case
for zero listeners.

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (118392 => 118393)


--- trunk/Source/WebCore/ChangeLog	2012-05-24 17:54:51 UTC (rev 118392)
+++ trunk/Source/WebCore/ChangeLog	2012-05-24 18:03:22 UTC (rev 118393)
@@ -1,3 +1,15 @@
+2012-05-24  Darin Adler  <[email protected]>
+
+        SVGElement::addEventListener has peculiar RefPtr usage
+        https://bugs.webkit.org/show_bug.cgi?id=86497
+
+        Reviewed by Andy Estes.
+
+        * svg/SVGElement.cpp:
+        (WebCore::SVGElement::addEventListener): Switch to a more-standard style of RefPtr usage,
+        getting rid of some unneeded reference count churn; also removed an unneeded special case
+        for zero listeners.
+
 2012-05-24  Raphael Kubo da Costa  <[email protected]>
 
         [EFL] Modify keycode conversion functions to return keycodes with location information after r118001.

Modified: trunk/Source/WebCore/svg/SVGElement.cpp (118392 => 118393)


--- trunk/Source/WebCore/svg/SVGElement.cpp	2012-05-24 17:54:51 UTC (rev 118392)
+++ trunk/Source/WebCore/svg/SVGElement.cpp	2012-05-24 18:03:22 UTC (rev 118393)
@@ -362,28 +362,23 @@
     instances = styledElement->instancesForElement();
 }
 
-bool SVGElement::addEventListener(const AtomicString& eventType, PassRefPtr<EventListener> listener, bool useCapture)
+bool SVGElement::addEventListener(const AtomicString& eventType, PassRefPtr<EventListener> prpListener, bool useCapture)
 {
-    HashSet<SVGElementInstance*> instances;
-    collectInstancesForSVGElement(this, instances);
-    if (instances.isEmpty())
-        return Node::addEventListener(eventType, listener, useCapture);
-
-    RefPtr<EventListener> listenerForRegularTree = listener;
-    RefPtr<EventListener> listenerForShadowTree = listenerForRegularTree;
-
+    RefPtr<EventListener> listener = prpListener;
+    
     // Add event listener to regular DOM element
-    if (!Node::addEventListener(eventType, listenerForRegularTree.release(), useCapture))
+    if (!Node::addEventListener(eventType, listener, useCapture))
         return false;
 
     // Add event listener to all shadow tree DOM element instances
+    HashSet<SVGElementInstance*> instances;
+    collectInstancesForSVGElement(this, instances);    
     const HashSet<SVGElementInstance*>::const_iterator end = instances.end();
     for (HashSet<SVGElementInstance*>::const_iterator it = instances.begin(); it != end; ++it) {
         ASSERT((*it)->shadowTreeElement());
         ASSERT((*it)->correspondingElement() == this);
 
-        RefPtr<EventListener> listenerForCurrentShadowTreeElement = listenerForShadowTree;
-        bool result = (*it)->shadowTreeElement()->Node::addEventListener(eventType, listenerForCurrentShadowTreeElement.release(), useCapture);
+        bool result = (*it)->shadowTreeElement()->Node::addEventListener(eventType, listener, useCapture);
         ASSERT_UNUSED(result, result);
     }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to