| Index: Source/core/events/EventListenerMap.h
|
| diff --git a/Source/core/events/EventListenerMap.h b/Source/core/events/EventListenerMap.h
|
| index 78c46dfaa6b8da895344487cfeaa9f453c668b3b..9f8f3307efc818dd56ed2aa2018717270620a2ac 100644
|
| --- a/Source/core/events/EventListenerMap.h
|
| +++ b/Source/core/events/EventListenerMap.h
|
| @@ -43,10 +43,11 @@ namespace blink {
|
|
|
| class EventTarget;
|
|
|
| -typedef Vector<RegisteredEventListener, 1> EventListenerVector;
|
| +typedef WillBeHeapVector<RegisteredEventListener, 1> EventListenerVector;
|
|
|
| class CORE_EXPORT EventListenerMap {
|
| WTF_MAKE_NONCOPYABLE(EventListenerMap);
|
| + DISALLOW_ALLOCATION();
|
| public:
|
| EventListenerMap();
|
|
|
| @@ -55,19 +56,21 @@ public:
|
| bool containsCapturing(const AtomicString& eventType) const;
|
|
|
| void clear();
|
| - bool add(const AtomicString& eventType, PassRefPtr<EventListener>, bool useCapture);
|
| + bool add(const AtomicString& eventType, PassRefPtrWillBeRawPtr<EventListener>, bool useCapture);
|
| bool remove(const AtomicString& eventType, EventListener*, bool useCapture, size_t& indexOfRemovedListener);
|
| EventListenerVector* find(const AtomicString& eventType);
|
| Vector<AtomicString> eventTypes() const;
|
|
|
| void copyEventListenersNotCreatedFromMarkupToTarget(EventTarget*);
|
|
|
| + DECLARE_TRACE();
|
| +
|
| private:
|
| friend class EventListenerIterator;
|
|
|
| void assertNoActiveIterators();
|
|
|
| - Vector<std::pair<AtomicString, OwnPtr<EventListenerVector>>, 2> m_entries;
|
| + WillBeHeapVector<std::pair<AtomicString, OwnPtrWillBeMember<EventListenerVector>>, 2> m_entries;
|
|
|
| #if ENABLE(ASSERT)
|
| int m_activeIteratorCount;
|
| @@ -76,8 +79,9 @@ private:
|
|
|
| class EventListenerIterator {
|
| WTF_MAKE_NONCOPYABLE(EventListenerIterator);
|
| + STACK_ALLOCATED();
|
| public:
|
| - EventListenerIterator(EventTarget*);
|
| + explicit EventListenerIterator(EventTarget*);
|
| #if ENABLE(ASSERT)
|
| ~EventListenerIterator();
|
| #endif
|
| @@ -85,6 +89,8 @@ public:
|
| EventListener* nextListener();
|
|
|
| private:
|
| + // This cannot be a Member because it is pointing to a part of object.
|
| + // TODO(haraken): Use Member<EventTarget> instead of EventListenerMap*.
|
| EventListenerMap* m_map;
|
| unsigned m_entryIndex;
|
| unsigned m_index;
|
|
|