Commit dd9d6bf3 authored by ggaren@apple.com's avatar ggaren@apple.com

Not reviewed.

Rolled out some accidentally-committed changes in my last commit.

* dom/EventTarget.cpp:
(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::removeEventListener):
* dom/EventTarget.h:



git-svn-id: svn://svn.chromium.org/blink/trunk@83261 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 18f892cf
2011-04-07 Geoffrey Garen <ggaren@apple.com>
Not reviewed.
Rolled out some accidentally-committed changes in my last commit.
* dom/EventTarget.cpp:
(WebCore::EventTarget::addEventListener):
(WebCore::EventTarget::removeEventListener):
* dom/EventTarget.h:
2011-04-07 Julien Chaffraix <jchaffraix@codeaurora.org> 2011-04-07 Julien Chaffraix <jchaffraix@codeaurora.org>
Reviewed by Alexey Proskuryakov. Reviewed by Alexey Proskuryakov.
...@@ -209,10 +209,10 @@ bool EventTarget::addEventListener(const AtomicString& eventType, PassRefPtr<Eve ...@@ -209,10 +209,10 @@ bool EventTarget::addEventListener(const AtomicString& eventType, PassRefPtr<Eve
EventTargetData* d = ensureEventTargetData(); EventTargetData* d = ensureEventTargetData();
pair<EventListenerMap::iterator, bool> result = d->eventListenerMap.add(eventType, 0); pair<EventListenerMap::iterator, bool> result = d->eventListenerMap.add(eventType, 0);
OwnPtr<EventListenerVector>& entry = result.first->second; EventListenerVector*& entry = result.first->second;
const bool isNewEntry = result.second; const bool isNewEntry = result.second;
if (isNewEntry) if (isNewEntry)
entry = adoptPtr(new EventListenerVector()); entry = new EventListenerVector();
RegisteredEventListener registeredListener(listener, useCapture); RegisteredEventListener registeredListener(listener, useCapture);
if (!isNewEntry) { if (!isNewEntry) {
...@@ -233,7 +233,7 @@ bool EventTarget::removeEventListener(const AtomicString& eventType, EventListen ...@@ -233,7 +233,7 @@ bool EventTarget::removeEventListener(const AtomicString& eventType, EventListen
EventListenerMap::iterator result = d->eventListenerMap.find(eventType); EventListenerMap::iterator result = d->eventListenerMap.find(eventType);
if (result == d->eventListenerMap.end()) if (result == d->eventListenerMap.end())
return false; return false;
OwnPtr<EventListenerVector>& entry = result->second; EventListenerVector* entry = result->second;
RegisteredEventListener registeredListener(listener, useCapture); RegisteredEventListener registeredListener(listener, useCapture);
size_t index = entry->find(registeredListener); size_t index = entry->find(registeredListener);
...@@ -241,8 +241,10 @@ bool EventTarget::removeEventListener(const AtomicString& eventType, EventListen ...@@ -241,8 +241,10 @@ bool EventTarget::removeEventListener(const AtomicString& eventType, EventListen
return false; return false;
entry->remove(index); entry->remove(index);
if (entry->isEmpty()) if (entry->isEmpty()) {
delete entry;
d->eventListenerMap.remove(result); d->eventListenerMap.remove(result);
}
// Notify firing events planning to invoke the listener at 'index' that // Notify firing events planning to invoke the listener at 'index' that
// they have one less listener to invoke. // they have one less listener to invoke.
......
...@@ -84,7 +84,7 @@ namespace WebCore { ...@@ -84,7 +84,7 @@ namespace WebCore {
typedef Vector<FiringEventIterator, 1> FiringEventIteratorVector; typedef Vector<FiringEventIterator, 1> FiringEventIteratorVector;
typedef Vector<RegisteredEventListener, 1> EventListenerVector; typedef Vector<RegisteredEventListener, 1> EventListenerVector;
typedef HashMap<AtomicString, OwnPtr<EventListenerVector>> EventListenerMap; typedef HashMap<AtomicString, EventListenerVector*> EventListenerMap;
struct EventTargetData { struct EventTargetData {
WTF_MAKE_NONCOPYABLE(EventTargetData); WTF_MAKE_FAST_ALLOCATED; WTF_MAKE_NONCOPYABLE(EventTargetData); WTF_MAKE_FAST_ALLOCATED;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment