Index: Source/core/inspector/InspectorTimelineAgent.cpp |
diff --git a/Source/core/inspector/InspectorTimelineAgent.cpp b/Source/core/inspector/InspectorTimelineAgent.cpp |
index f2002cc2daccc56e96aa410fbd3cbfbfb30bb0d8..38dcbb094a818897142f346eca9edf5115b473ff 100644 |
--- a/Source/core/inspector/InspectorTimelineAgent.cpp |
+++ b/Source/core/inspector/InspectorTimelineAgent.cpp |
@@ -158,6 +158,7 @@ struct TimelineRecordEntry { |
}; |
class TimelineRecordStack { |
+ DISALLOW_ALLOCATION(); |
private: |
struct Entry { |
Entry(PassRefPtr<TimelineEvent> record, const String& type) |
@@ -177,7 +178,7 @@ private: |
}; |
public: |
- TimelineRecordStack() : m_timelineAgent(0) { } |
+ TimelineRecordStack() : m_timelineAgent(nullptr) { } |
TimelineRecordStack(InspectorTimelineAgent*); |
haraken
2014/06/19 05:49:53
Add explicit.
keishi
2014/07/24 02:15:02
Done.
|
void addScopedRecord(PassRefPtr<TimelineEvent> record, const String& type); |
@@ -188,14 +189,16 @@ public: |
bool isOpenRecordOfType(const String& type); |
#endif |
+ void trace(Visitor*); |
+ |
private: |
void send(PassRefPtr<JSONObject>); |
- InspectorTimelineAgent* m_timelineAgent; |
+ RawPtrWillBeMember<InspectorTimelineAgent> m_timelineAgent; |
Vector<Entry> m_stack; |
}; |
-struct TimelineThreadState { |
+struct TimelineThreadState : public NoBaseWillBeGarbageCollectedFinalized<TimelineThreadState> { |
haraken
2014/06/19 05:49:53
I think you can use ALLOW_ONLY_INLINE_ALLOCATION i
haraken
2014/06/19 05:49:53
Nit: struct => class
keishi
2014/07/24 02:15:02
Done.
keishi
2014/07/24 02:15:02
Should this be a class? The accessors are public.
|
TimelineThreadState() { } |
TimelineThreadState(InspectorTimelineAgent* timelineAgent) |
@@ -205,6 +208,8 @@ struct TimelineThreadState { |
{ |
} |
+ void trace(Visitor*); |
+ |
TimelineRecordStack recordStack; |
bool inKnownLayerTask; |
unsigned long long decodedPixelRefId; |
@@ -265,6 +270,7 @@ void InspectorTimelineAgent::trace(Visitor* visitor) |
{ |
visitor->trace(m_pageAgent); |
visitor->trace(m_layerTreeAgent); |
+ visitor->trace(m_threadStates); |
InspectorBaseAgent::trace(visitor); |
} |
@@ -1208,8 +1214,8 @@ TimelineThreadState& InspectorTimelineAgent::threadState(ThreadIdentifier thread |
{ |
ThreadStateMap::iterator it = m_threadStates.find(thread); |
if (it != m_threadStates.end()) |
- return it->value; |
- return m_threadStates.add(thread, TimelineThreadState(this)).storedValue->value; |
+ return *(it->value); |
+ return *(m_threadStates.add(thread, adoptPtrWillBeNoop(new TimelineThreadState(this))).storedValue->value); |
} |
void InspectorTimelineAgent::commitFrameRecord() |
@@ -1317,5 +1323,15 @@ bool TimelineRecordStack::isOpenRecordOfType(const String& type) |
} |
#endif |
+void TimelineRecordStack::trace(Visitor* visitor) |
+{ |
+ visitor->trace(m_timelineAgent); |
+} |
+ |
+void TimelineThreadState::trace(Visitor* visitor) |
+{ |
+ recordStack.trace(visitor); |
haraken
2014/06/19 05:49:53
visitor->trace(recordStack) should work.
keishi
2014/07/24 02:15:02
Done.
|
+} |
+ |
} // namespace WebCore |