Commit 6523bab2 authored by keishi@chromium.org's avatar keishi@chromium.org

Revert 179931 "Oilpan: Prepare moving AsyncCallChain to Oilpan"

> Oilpan: Prepare moving AsyncCallChain to Oilpan
> 
> BUG=340522
> 
> Review URL: https://codereview.chromium.org/413113003

TBR=keishi@chromium.org

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

git-svn-id: svn://svn.chromium.org/blink/trunk@179932 bbb929c8-8fbe-4397-9dbb-9b2b20218538
parent 1e8d1ab8
......@@ -89,14 +89,14 @@ private:
public:
AsyncCallStackTracker* m_tracker;
HashSet<int> m_intervalTimerIds;
WillBePersistentHeapHashMap<int, RefPtrWillBeMember<AsyncCallChain> > m_timerCallChains;
WillBePersistentHeapHashMap<int, RefPtrWillBeMember<AsyncCallChain> > m_animationFrameCallChains;
WillBePersistentHeapHashMap<RawPtrWillBeMember<Event>, RefPtrWillBeMember<AsyncCallChain> > m_eventCallChains;
WillBePersistentHeapHashMap<RawPtrWillBeMember<EventTarget>, RefPtrWillBeMember<AsyncCallChain> > m_xhrCallChains;
WillBePersistentHeapHashMap<RawPtrWillBeMember<MutationObserver>, RefPtrWillBeMember<AsyncCallChain> > m_mutationObserverCallChains;
WillBePersistentHeapHashMap<ExecutionContextTask*, RefPtrWillBeMember<AsyncCallChain> > m_executionContextTaskCallChains;
WillBePersistentHeapHashMap<String, RefPtrWillBeMember<AsyncCallChain> > m_v8AsyncTaskCallChains;
WillBePersistentHeapHashMap<int, RefPtrWillBeMember<AsyncCallChain> > m_asyncOperationCallChains;
HashMap<int, RefPtr<AsyncCallChain> > m_timerCallChains;
HashMap<int, RefPtr<AsyncCallChain> > m_animationFrameCallChains;
HashMap<Event*, RefPtr<AsyncCallChain> > m_eventCallChains;
HashMap<EventTarget*, RefPtr<AsyncCallChain> > m_xhrCallChains;
HashMap<MutationObserver*, RefPtr<AsyncCallChain> > m_mutationObserverCallChains;
HashMap<ExecutionContextTask*, RefPtr<AsyncCallChain> > m_executionContextTaskCallChains;
HashMap<String, RefPtr<AsyncCallChain> > m_v8AsyncTaskCallChains;
HashMap<int, RefPtr<AsyncCallChain> > m_asyncOperationCallChains;
};
static XMLHttpRequest* toXmlHttpRequest(EventTarget* eventTarget)
......@@ -109,11 +109,6 @@ static XMLHttpRequest* toXmlHttpRequest(EventTarget* eventTarget)
return 0;
}
void AsyncCallStackTracker::AsyncCallChain::trace(Visitor* visitor)
{
visitor->trace(m_callStacks);
}
AsyncCallStackTracker::AsyncCallStack::AsyncCallStack(const String& description, const ScriptValue& callFrames)
: m_description(description)
, m_callFrames(callFrames)
......@@ -416,19 +411,19 @@ void AsyncCallStackTracker::didFireAsyncCall()
clearCurrentAsyncCallChain();
}
PassRefPtrWillBeRawPtr<AsyncCallStackTracker::AsyncCallChain> AsyncCallStackTracker::createAsyncCallChain(const String& description, const ScriptValue& callFrames)
PassRefPtr<AsyncCallStackTracker::AsyncCallChain> AsyncCallStackTracker::createAsyncCallChain(const String& description, const ScriptValue& callFrames)
{
if (callFrames.isEmpty()) {
ASSERT(m_currentAsyncCallChain);
return m_currentAsyncCallChain; // Propogate async call stack chain.
}
RefPtrWillBeRawPtr<AsyncCallChain> chain = adoptRefWillBeNoop(m_currentAsyncCallChain ? new AsyncCallStackTracker::AsyncCallChain(*m_currentAsyncCallChain) : new AsyncCallStackTracker::AsyncCallChain());
RefPtr<AsyncCallChain> chain = adoptRef(m_currentAsyncCallChain ? new AsyncCallStackTracker::AsyncCallChain(*m_currentAsyncCallChain) : new AsyncCallStackTracker::AsyncCallChain());
ensureMaxAsyncCallChainDepth(chain.get(), m_maxAsyncCallStackDepth - 1);
chain->m_callStacks.prepend(adoptRefWillBeNoop(new AsyncCallStackTracker::AsyncCallStack(description, callFrames)));
chain->m_callStacks.prepend(adoptRef(new AsyncCallStackTracker::AsyncCallStack(description, callFrames)));
return chain.release();
}
void AsyncCallStackTracker::setCurrentAsyncCallChain(ExecutionContext* context, PassRefPtrWillBeRawPtr<AsyncCallChain> chain)
void AsyncCallStackTracker::setCurrentAsyncCallChain(ExecutionContext* context, PassRefPtr<AsyncCallChain> chain)
{
if (chain && !V8RecursionScope::recursionLevel(toIsolate(context))) {
// Current AsyncCallChain corresponds to the bottommost JS call frame.
......
......@@ -52,11 +52,10 @@ class XMLHttpRequest;
class AsyncCallStackTracker {
WTF_MAKE_NONCOPYABLE(AsyncCallStackTracker);
public:
class AsyncCallStack FINAL : public RefCountedWillBeGarbageCollectedFinalized<AsyncCallStack> {
class AsyncCallStack : public RefCounted<AsyncCallStack> {
public:
AsyncCallStack(const String&, const ScriptValue&);
~AsyncCallStack();
void trace(Visitor*) { }
String description() const { return m_description; }
ScriptValue callFrames() const { return m_callFrames; }
private:
......@@ -64,14 +63,13 @@ public:
ScriptValue m_callFrames;
};
typedef WillBeHeapDeque<RefPtrWillBeMember<AsyncCallStack>, 4> AsyncCallStackVector;
typedef Deque<RefPtr<AsyncCallStack>, 4> AsyncCallStackVector;
class AsyncCallChain : public RefCountedWillBeGarbageCollected<AsyncCallChain> {
class AsyncCallChain : public RefCounted<AsyncCallChain> {
public:
AsyncCallChain() { }
AsyncCallChain(const AsyncCallChain& t) : m_callStacks(t.m_callStacks) { }
AsyncCallStackVector callStacks() const { return m_callStacks; }
void trace(Visitor*);
private:
friend class AsyncCallStackTracker;
AsyncCallStackVector m_callStacks;
......@@ -120,8 +118,8 @@ public:
private:
void willHandleXHREvent(XMLHttpRequest*, Event*);
PassRefPtrWillBeRawPtr<AsyncCallChain> createAsyncCallChain(const String& description, const ScriptValue& callFrames);
void setCurrentAsyncCallChain(ExecutionContext*, PassRefPtrWillBeRawPtr<AsyncCallChain>);
PassRefPtr<AsyncCallChain> createAsyncCallChain(const String& description, const ScriptValue& callFrames);
void setCurrentAsyncCallChain(ExecutionContext*, PassRefPtr<AsyncCallChain>);
void clearCurrentAsyncCallChain();
static void ensureMaxAsyncCallChainDepth(AsyncCallChain*, unsigned);
bool validateCallFrames(const ScriptValue& callFrames);
......@@ -130,7 +128,7 @@ private:
ExecutionContextData* createContextDataIfNeeded(ExecutionContext*);
unsigned m_maxAsyncCallStackDepth;
RefPtrWillBePersistent<AsyncCallChain> m_currentAsyncCallChain;
RefPtr<AsyncCallChain> m_currentAsyncCallChain;
unsigned m_nestedAsyncCallCount;
typedef HashMap<ExecutionContext*, ExecutionContextData*> ExecutionContextDataMap;
ExecutionContextDataMap m_executionContextDataMap;
......
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