[webkit-reviews] review granted: [Bug 17497] eliminate DeprecatedValueList : [Attachment 26003] patch

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sat Dec 13 13:53:50 PST 2008


Anders Carlsson <andersca at apple.com> has granted Darin Adler
<darin at apple.com>'s request for review:
Bug 17497: eliminate DeprecatedValueList
https://bugs.webkit.org/show_bug.cgi?id=17497

Attachment 26003: patch
https://bugs.webkit.org/attachment.cgi?id=26003&action=review

------- Additional Comments from Anders Carlsson <andersca at apple.com>
>  #endif
> Index: WebCore/dom/EventTargetNode.cpp
> ===================================================================
> --- WebCore/dom/EventTargetNode.cpp	(revision 39276)
> +++ WebCore/dom/EventTargetNode.cpp	(working copy)
> +const RegisteredEventListeners& EventTargetNode::eventListeners() const
> +{
> +    if (hasRareData()) {
> +	   if (RegisteredEventListeners* listeners = rareData()->listeners())
> +	       return *listeners;
> +    }
> +    static const RegisteredEventListeners* emptyListenersVector = new
RegisteredEventListeners;
> +    return *emptyListenersVector;

Clever!

>  void EventTargetNode::removeEventListener(const AtomicString& eventType,
EventListener* listener, bool useCapture)
>  {
> -    if (!m_regdListeners)
> +    if (!hasRareData())
>	   return;
>  
> -    RegisteredEventListenerList::Iterator end = m_regdListeners->end();
> -    for (RegisteredEventListenerList::Iterator it =
m_regdListeners->begin(); it != end; ++it) {
> -	   RegisteredEventListener& r = **it;
> +    RegisteredEventListeners* listeners = rareData()->listeners();
> +    if (!listeners)
> +	   return;
> +
> +    size_t size = listeners->size();
> +    for (size_t i = 0; i < size; ++i) {
> +	   RegisteredEventListener& r = *(*listeners)[i];

I prefer listeners->at(i).

>  void EventTargetNode::removeInlineEventListenerForType(const AtomicString&
eventType)
>  {
> +
> +    size_t size = listeners->size();
> +    for (size_t i = 0; i < size; ++i) {
> +	   RegisteredEventListener& r = *(*listeners)[i];
> +	   if (r.eventType() != eventType || !r.listener()->isInline())
>	       continue;
>

Same thing here.
  
> +
> +typedef Vector<RefPtr<RegisteredEventListener> > RegisteredEventListeners;
>

I think RegistereEventListenerVector is better here.
  
r=me!

I usually delete the files in a separate commit. Boy it feels great to see
those red patches on webkit-changes ;)


More information about the webkit-reviews mailing list