diff options
Diffstat (limited to 'WebCore/dom/EventTarget.h')
| -rw-r--r-- | WebCore/dom/EventTarget.h | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/WebCore/dom/EventTarget.h b/WebCore/dom/EventTarget.h index 9a1975c..2d77c87 100644 --- a/WebCore/dom/EventTarget.h +++ b/WebCore/dom/EventTarget.h @@ -76,9 +76,11 @@ namespace WebCore { typedef Vector<FiringEventIterator, 1> FiringEventIteratorVector; typedef Vector<RegisteredEventListener, 1> EventListenerVector; - typedef HashMap<AtomicString, EventListenerVector> EventListenerMap; + typedef HashMap<AtomicString, EventListenerVector*> EventListenerMap; + + struct EventTargetData : Noncopyable { + ~EventTargetData(); - struct EventTargetData { EventListenerMap eventListenerMap; FiringEventIteratorVector firingEventIterators; }; @@ -190,7 +192,7 @@ namespace WebCore { EventListenerMap::iterator end = d->eventListenerMap.end(); for (EventListenerMap::iterator it = d->eventListenerMap.begin(); it != end; ++it) { - EventListenerVector& entry = it->second; + EventListenerVector& entry = *it->second; for (size_t i = 0; i < entry.size(); ++i) entry[i].listener->markJSFunction(markStack); } @@ -202,6 +204,7 @@ namespace WebCore { if (!d) return; + deleteAllValues(d->eventListenerMap); d->eventListenerMap.clear(); } #endif |
