Index: Source/core/events/GenericEventQueue.cpp |
diff --git a/Source/core/events/GenericEventQueue.cpp b/Source/core/events/GenericEventQueue.cpp |
index 7f4386ac4e090e5f67f5d719eae73ffde0c1ad74..9fdc3f22050b8264e8071d4225440f311cc0c20b 100644 |
--- a/Source/core/events/GenericEventQueue.cpp |
+++ b/Source/core/events/GenericEventQueue.cpp |
@@ -32,9 +32,9 @@ |
namespace WebCore { |
-PassOwnPtr<GenericEventQueue> GenericEventQueue::create(EventTarget* owner) |
+PassOwnPtrWillBeRawPtr<GenericEventQueue> GenericEventQueue::create(EventTarget* owner) |
{ |
- return adoptPtr(new GenericEventQueue(owner)); |
+ return adoptPtrWillBeNoop(new GenericEventQueue(owner)); |
} |
GenericEventQueue::GenericEventQueue(EventTarget* owner) |
@@ -48,6 +48,13 @@ GenericEventQueue::~GenericEventQueue() |
{ |
} |
+void GenericEventQueue::trace(Visitor* visitor) |
+{ |
+ visitor->trace(m_owner); |
+ visitor->trace(m_pendingEvents); |
+ EventQueue::trace(visitor); |
+} |
+ |
bool GenericEventQueue::enqueueEvent(PassRefPtrWillBeRawPtr<Event> event) |
{ |
if (m_isClosed) |
@@ -88,10 +95,10 @@ void GenericEventQueue::timerFired(Timer<GenericEventQueue>*) |
WillBeHeapVector<RefPtrWillBeMember<Event> > pendingEvents; |
m_pendingEvents.swap(pendingEvents); |
- RefPtrWillBeRawPtr<EventTarget> protect(m_owner); |
+ RefPtrWillBeRawPtr<EventTarget> protect(m_owner.get()); |
for (size_t i = 0; i < pendingEvents.size(); ++i) { |
Event* event = pendingEvents[i].get(); |
- EventTarget* target = event->target() ? event->target() : m_owner; |
+ EventTarget* target = event->target() ? event->target() : m_owner.get(); |
CString type(event->type().ascii()); |
TRACE_EVENT_ASYNC_STEP_INTO1("event", "GenericEventQueue:enqueueEvent", event, "dispatch", "type", type); |
target->dispatchEvent(pendingEvents[i].release()); |