Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Side by Side Diff: third_party/WebKit/Source/platform/EventTracer.cpp

Issue 1717283003: tracing: Make ConvertableToTraceFormat move-only scoped_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2011 Google Inc. All rights reserved. 2 * Copyright (C) 2011 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 } 69 }
70 70
71 TraceEvent::TraceEventHandle EventTracer::addTraceEvent(char phase, const unsign ed char* categoryEnabledFlag, 71 TraceEvent::TraceEventHandle EventTracer::addTraceEvent(char phase, const unsign ed char* categoryEnabledFlag,
72 const char* name, const char* scope, unsigned long long id, unsigned long lo ng bindId, double timestamp, 72 const char* name, const char* scope, unsigned long long id, unsigned long lo ng bindId, double timestamp,
73 int numArgs, const char* argNames[], const unsigned char argTypes[], 73 int numArgs, const char* argNames[], const unsigned char argTypes[],
74 const unsigned long long argValues[], 74 const unsigned long long argValues[],
75 PassOwnPtr<TracedValue> tracedValue1, 75 PassOwnPtr<TracedValue> tracedValue1,
76 PassOwnPtr<TracedValue> tracedValue2, 76 PassOwnPtr<TracedValue> tracedValue2,
77 unsigned flags) 77 unsigned flags)
78 { 78 {
79 scoped_refptr<base::trace_event::ConvertableToTraceFormat> convertables[2]; 79 scoped_ptr<base::trace_event::ConvertableToTraceFormat> convertables[2];
80 ASSERT(numArgs <= 2); 80 ASSERT(numArgs <= 2);
81 // We move m_tracedValues from TracedValues for thread safety. 81 // We move m_tracedValues from TracedValues for thread safety.
82 // https://crbug.com/478149 82 // https://crbug.com/478149
83 if (numArgs >= 1 && argTypes[0] == TRACE_VALUE_TYPE_CONVERTABLE) 83 if (numArgs >= 1 && argTypes[0] == TRACE_VALUE_TYPE_CONVERTABLE)
84 convertables[0] = std::move(tracedValue1->m_tracedValue); 84 convertables[0] = std::move(tracedValue1->m_tracedValue);
85 if (numArgs >= 2 && argTypes[1] == TRACE_VALUE_TYPE_CONVERTABLE) 85 if (numArgs >= 2 && argTypes[1] == TRACE_VALUE_TYPE_CONVERTABLE)
86 convertables[1] = std::move(tracedValue2->m_tracedValue); 86 convertables[1] = std::move(tracedValue2->m_tracedValue);
87 return addTraceEvent(phase, categoryEnabledFlag, name, scope, id, bindId, ti mestamp, numArgs, argNames, argTypes, argValues, convertables, flags); 87 return addTraceEvent(phase, categoryEnabledFlag, name, scope, id, bindId, ti mestamp, numArgs, argNames, argTypes, argValues, convertables, flags);
88 } 88 }
89 89
90 TraceEvent::TraceEventHandle EventTracer::addTraceEvent(char phase, const unsign ed char* categoryEnabledFlag, 90 TraceEvent::TraceEventHandle EventTracer::addTraceEvent(char phase, const unsign ed char* categoryEnabledFlag,
91 const char* name, const char* scope, unsigned long long id, unsigned long lo ng bindId, double timestamp, 91 const char* name, const char* scope, unsigned long long id, unsigned long lo ng bindId, double timestamp,
92 int numArgs, const char** argNames, const unsigned char* argTypes, 92 int numArgs, const char** argNames, const unsigned char* argTypes,
93 const unsigned long long* argValues, unsigned flags) 93 const unsigned long long* argValues, unsigned flags)
94 { 94 {
95 return addTraceEvent(phase, categoryEnabledFlag, name, scope, id, bindId, ti mestamp, numArgs, argNames, argTypes, argValues, nullptr, flags); 95 return addTraceEvent(phase, categoryEnabledFlag, name, scope, id, bindId, ti mestamp, numArgs, argNames, argTypes, argValues, nullptr, flags);
96 } 96 }
97 97
98 TraceEvent::TraceEventHandle EventTracer::addTraceEvent(char phase, const unsign ed char* categoryEnabledFlag, 98 TraceEvent::TraceEventHandle EventTracer::addTraceEvent(char phase, const unsign ed char* categoryEnabledFlag,
99 const char* name, const char* scope, unsigned long long id, unsigned long lo ng bindId, double timestamp, 99 const char* name, const char* scope, unsigned long long id, unsigned long lo ng bindId, double timestamp,
100 int numArgs, const char** argNames, const unsigned char* argTypes, const uns igned long long* argValues, 100 int numArgs, const char** argNames, const unsigned char* argTypes, const uns igned long long* argValues,
101 const scoped_refptr<base::trace_event::ConvertableToTraceFormat>* convertabl es, unsigned flags) 101 scoped_ptr<base::trace_event::ConvertableToTraceFormat>* convertables, unsig ned flags)
102 { 102 {
103 base::TimeTicks timestampTimeTicks = base::TimeTicks() + base::TimeDelta::Fr omSecondsD(timestamp); 103 base::TimeTicks timestampTimeTicks = base::TimeTicks() + base::TimeDelta::Fr omSecondsD(timestamp);
104 base::trace_event::TraceEventHandle handle = TRACE_EVENT_API_ADD_TRACE_EVENT _WITH_THREAD_ID_AND_TIMESTAMP(phase, categoryEnabledFlag, name, scope, id, bindI d, base::PlatformThread::CurrentId(), timestampTimeTicks, numArgs, argNames, arg Types, argValues, convertables, flags); 104 base::trace_event::TraceEventHandle handle = TRACE_EVENT_API_ADD_TRACE_EVENT _WITH_THREAD_ID_AND_TIMESTAMP(phase, categoryEnabledFlag, name, scope, id, bindI d, base::PlatformThread::CurrentId(), timestampTimeTicks, numArgs, argNames, arg Types, argValues, convertables, flags);
105 TraceEvent::TraceEventHandle result; 105 TraceEvent::TraceEventHandle result;
106 memcpy(&result, &handle, sizeof(result)); 106 memcpy(&result, &handle, sizeof(result));
107 return result; 107 return result;
108 } 108 }
109 109
110 void EventTracer::updateTraceEventDuration(const unsigned char* categoryEnabledF lag, const char* name, TraceEvent::TraceEventHandle handle) 110 void EventTracer::updateTraceEventDuration(const unsigned char* categoryEnabledF lag, const char* name, TraceEvent::TraceEventHandle handle)
111 { 111 {
112 base::trace_event::TraceEventHandle traceEventHandle; 112 base::trace_event::TraceEventHandle traceEventHandle;
113 memcpy(&traceEventHandle, &handle, sizeof(handle)); 113 memcpy(&traceEventHandle, &handle, sizeof(handle));
114 TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION(categoryEnabledFlag, name, trace EventHandle); 114 TRACE_EVENT_API_UPDATE_TRACE_EVENT_DURATION(categoryEnabledFlag, name, trace EventHandle);
115 } 115 }
116 116
117 double EventTracer::systemTraceTime() 117 double EventTracer::systemTraceTime()
118 { 118 {
119 return (base::TimeTicks::Now() - base::TimeTicks()).InSecondsF(); 119 return (base::TimeTicks::Now() - base::TimeTicks()).InSecondsF();
120 } 120 }
121 121
122 } // namespace blink 122 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698