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