diff options
Diffstat (limited to 'src/3rdparty/webkit/WebCore/dom/RegisteredEventListener.h')
-rw-r--r-- | src/3rdparty/webkit/WebCore/dom/RegisteredEventListener.h | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/3rdparty/webkit/WebCore/dom/RegisteredEventListener.h b/src/3rdparty/webkit/WebCore/dom/RegisteredEventListener.h index 29b061dbec..479c2ff283 100644 --- a/src/3rdparty/webkit/WebCore/dom/RegisteredEventListener.h +++ b/src/3rdparty/webkit/WebCore/dom/RegisteredEventListener.h @@ -25,11 +25,10 @@ #define RegisteredEventListener_h #include "AtomicString.h" +#include "EventListener.h" namespace WebCore { - class EventListener; - class RegisteredEventListener : public RefCounted<RegisteredEventListener> { public: static PassRefPtr<RegisteredEventListener> create(const AtomicString& eventType, PassRefPtr<EventListener> listener, bool useCapture) @@ -53,6 +52,25 @@ namespace WebCore { bool m_removed; }; + typedef Vector<RefPtr<RegisteredEventListener> > RegisteredEventListenerVector; + +#if USE(JSC) + inline void markEventListeners(const RegisteredEventListenerVector& listeners) + { + for (size_t i = 0; i < listeners.size(); ++i) + listeners[i]->listener()->markJSFunction(); + } + + inline void invalidateEventListeners(const RegisteredEventListenerVector& listeners) + { + // For efficiency's sake, we just set the "removed" bit, instead of + // actually removing the event listener. The node that owns these + // listeners is about to be deleted, anyway. + for (size_t i = 0; i < listeners.size(); ++i) + listeners[i]->setRemoved(true); + } +#endif + } // namespace WebCore #endif // RegisteredEventListener_h |