summaryrefslogtreecommitdiff
path: root/src/3rdparty/webkit/WebCore/dom/RegisteredEventListener.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/webkit/WebCore/dom/RegisteredEventListener.h')
-rw-r--r--src/3rdparty/webkit/WebCore/dom/RegisteredEventListener.h22
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