Commit 58fb5077 authored by tkent@chromium.org's avatar tkent@chromium.org

Oilpan: Prpare to move WorkerEventQueue to Oilpan heap.

BUG=340522,375671

Review URL: https://codereview.chromium.org/303133005

git-svn-id: svn://svn.chromium.org/blink/trunk@175148 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 1fb7023c
...@@ -33,9 +33,9 @@ ...@@ -33,9 +33,9 @@
namespace WebCore { namespace WebCore {
PassOwnPtr<WorkerEventQueue> WorkerEventQueue::create(ExecutionContext* context) PassOwnPtrWillBeRawPtr<WorkerEventQueue> WorkerEventQueue::create(ExecutionContext* context)
{ {
return adoptPtr(new WorkerEventQueue(context)); return adoptPtrWillBeNoop(new WorkerEventQueue(context));
} }
WorkerEventQueue::WorkerEventQueue(ExecutionContext* context) WorkerEventQueue::WorkerEventQueue(ExecutionContext* context)
...@@ -46,7 +46,12 @@ WorkerEventQueue::WorkerEventQueue(ExecutionContext* context) ...@@ -46,7 +46,12 @@ WorkerEventQueue::WorkerEventQueue(ExecutionContext* context)
WorkerEventQueue::~WorkerEventQueue() WorkerEventQueue::~WorkerEventQueue()
{ {
close(); ASSERT(m_eventTaskMap.isEmpty());
}
void WorkerEventQueue::trace(Visitor* visitor)
{
visitor->trace(m_eventTaskMap);
} }
class WorkerEventQueue::EventDispatcherTask : public ExecutionContextTask { class WorkerEventQueue::EventDispatcherTask : public ExecutionContextTask {
......
...@@ -39,12 +39,13 @@ class Event; ...@@ -39,12 +39,13 @@ class Event;
class Node; class Node;
class ExecutionContext; class ExecutionContext;
class WorkerEventQueue FINAL : public EventQueue { class WorkerEventQueue FINAL : public NoBaseWillBeGarbageCollectedFinalized<WorkerEventQueue>, public EventQueue {
WTF_MAKE_FAST_ALLOCATED; WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED;
public: public:
static PassOwnPtr<WorkerEventQueue> create(ExecutionContext*); static PassOwnPtrWillBeRawPtr<WorkerEventQueue> create(ExecutionContext*);
virtual ~WorkerEventQueue(); virtual ~WorkerEventQueue();
void trace(Visitor*);
// EventQueue // EventQueue
virtual bool enqueueEvent(PassRefPtrWillBeRawPtr<Event>) OVERRIDE; virtual bool enqueueEvent(PassRefPtrWillBeRawPtr<Event>) OVERRIDE;
...@@ -59,7 +60,7 @@ private: ...@@ -59,7 +60,7 @@ private:
bool m_isClosed; bool m_isClosed;
class EventDispatcherTask; class EventDispatcherTask;
typedef WillBePersistentHeapHashMap<RefPtrWillBeMember<Event>, EventDispatcherTask*> EventTaskMap; typedef WillBeHeapHashMap<RefPtrWillBeMember<Event>, EventDispatcherTask*> EventTaskMap;
EventTaskMap m_eventTaskMap; EventTaskMap m_eventTaskMap;
}; };
......
...@@ -209,6 +209,7 @@ void WorkerGlobalScope::dispose() ...@@ -209,6 +209,7 @@ void WorkerGlobalScope::dispose()
{ {
ASSERT(thread()->isCurrentThread()); ASSERT(thread()->isCurrentThread());
m_eventQueue->close();
clearScript(); clearScript();
clearInspector(); clearInspector();
setClient(0); setClient(0);
...@@ -325,6 +326,7 @@ void WorkerGlobalScope::trace(Visitor* visitor) ...@@ -325,6 +326,7 @@ void WorkerGlobalScope::trace(Visitor* visitor)
visitor->trace(m_console); visitor->trace(m_console);
visitor->trace(m_location); visitor->trace(m_location);
visitor->trace(m_navigator); visitor->trace(m_navigator);
visitor->trace(m_eventQueue);
visitor->trace(m_workerClients); visitor->trace(m_workerClients);
WillBeHeapSupplementable<WorkerGlobalScope>::trace(visitor); WillBeHeapSupplementable<WorkerGlobalScope>::trace(visitor);
ExecutionContext::trace(visitor); ExecutionContext::trace(visitor);
......
...@@ -173,7 +173,7 @@ namespace WebCore { ...@@ -173,7 +173,7 @@ namespace WebCore {
OwnPtr<WorkerInspectorController> m_workerInspectorController; OwnPtr<WorkerInspectorController> m_workerInspectorController;
bool m_closing; bool m_closing;
OwnPtr<WorkerEventQueue> m_eventQueue; OwnPtrWillBeMember<WorkerEventQueue> m_eventQueue;
OwnPtrWillBeMember<WorkerClients> m_workerClients; OwnPtrWillBeMember<WorkerClients> m_workerClients;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment