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 @@
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)
......@@ -46,7 +46,12 @@ WorkerEventQueue::WorkerEventQueue(ExecutionContext* context)
WorkerEventQueue::~WorkerEventQueue()
{
close();
ASSERT(m_eventTaskMap.isEmpty());
}
void WorkerEventQueue::trace(Visitor* visitor)
{
visitor->trace(m_eventTaskMap);
}
class WorkerEventQueue::EventDispatcherTask : public ExecutionContextTask {
......
......@@ -39,12 +39,13 @@ class Event;
class Node;
class ExecutionContext;
class WorkerEventQueue FINAL : public EventQueue {
WTF_MAKE_FAST_ALLOCATED;
class WorkerEventQueue FINAL : public NoBaseWillBeGarbageCollectedFinalized<WorkerEventQueue>, public EventQueue {
WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED;
public:
static PassOwnPtr<WorkerEventQueue> create(ExecutionContext*);
static PassOwnPtrWillBeRawPtr<WorkerEventQueue> create(ExecutionContext*);
virtual ~WorkerEventQueue();
void trace(Visitor*);
// EventQueue
virtual bool enqueueEvent(PassRefPtrWillBeRawPtr<Event>) OVERRIDE;
......@@ -59,7 +60,7 @@ private:
bool m_isClosed;
class EventDispatcherTask;
typedef WillBePersistentHeapHashMap<RefPtrWillBeMember<Event>, EventDispatcherTask*> EventTaskMap;
typedef WillBeHeapHashMap<RefPtrWillBeMember<Event>, EventDispatcherTask*> EventTaskMap;
EventTaskMap m_eventTaskMap;
};
......
......@@ -209,6 +209,7 @@ void WorkerGlobalScope::dispose()
{
ASSERT(thread()->isCurrentThread());
m_eventQueue->close();
clearScript();
clearInspector();
setClient(0);
......@@ -325,6 +326,7 @@ void WorkerGlobalScope::trace(Visitor* visitor)
visitor->trace(m_console);
visitor->trace(m_location);
visitor->trace(m_navigator);
visitor->trace(m_eventQueue);
visitor->trace(m_workerClients);
WillBeHeapSupplementable<WorkerGlobalScope>::trace(visitor);
ExecutionContext::trace(visitor);
......
......@@ -173,7 +173,7 @@ namespace WebCore {
OwnPtr<WorkerInspectorController> m_workerInspectorController;
bool m_closing;
OwnPtr<WorkerEventQueue> m_eventQueue;
OwnPtrWillBeMember<WorkerEventQueue> m_eventQueue;
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