Index: third_party/WebKit/Source/platform/TraceEvent.h |
diff --git a/third_party/WebKit/Source/platform/TraceEvent.h b/third_party/WebKit/Source/platform/TraceEvent.h |
index c47ac9bb57e52b101515b5984d04796826fe0919..6fca92117a6f99567f523a27d187e4d7855ba686 100644 |
--- a/third_party/WebKit/Source/platform/TraceEvent.h |
+++ b/third_party/WebKit/Source/platform/TraceEvent.h |
@@ -442,9 +442,9 @@ template<typename T> struct TracedValueTraits { |
template<typename T> struct TracedValueTraits<PassOwnPtr<T>> { |
static const bool isTracedValue = std::is_convertible<T*, TracedValue*>::value; |
- static PassOwnPtr<TracedValue> moveFromIfTracedValue(const PassOwnPtr<T>& tracedValue) |
+ static PassOwnPtr<TracedValue> moveFromIfTracedValue(PassOwnPtr<T>&& tracedValue) |
{ |
- return tracedValue; |
+ return std::move(tracedValue); |
} |
}; |
@@ -453,9 +453,9 @@ template<typename T> bool isTracedValue(const T&) |
return TracedValueTraits<T>::isTracedValue; |
} |
-template<typename T> PassOwnPtr<TracedValue> moveFromIfTracedValue(const T& value) |
+template<typename T> PassOwnPtr<TracedValue> moveFromIfTracedValue(T&& value) |
{ |
- return TracedValueTraits<T>::moveFromIfTracedValue(value); |
+ return TracedValueTraits<T>::moveFromIfTracedValue(std::forward<T>(value)); |
} |
// These addTraceEvent template functions are defined here instead of in the |
@@ -490,7 +490,7 @@ static inline TraceEventHandle addTraceEvent( |
double timestamp, |
unsigned flags, |
const char* arg1Name, |
- const ARG1_TYPE& arg1Val) |
+ ARG1_TYPE&& arg1Val) |
{ |
const int numArgs = 1; |
unsigned char argTypes[1]; |
@@ -500,7 +500,7 @@ static inline TraceEventHandle addTraceEvent( |
return TRACE_EVENT_API_ADD_TRACE_EVENT( |
phase, categoryEnabled, name, scope, id, bindId, timestamp, |
numArgs, &arg1Name, argTypes, argValues, |
- moveFromIfTracedValue(arg1Val), |
+ moveFromIfTracedValue(std::forward<ARG1_TYPE>(arg1Val)), |
nullptr, |
flags); |
} |
@@ -521,9 +521,9 @@ static inline TraceEventHandle addTraceEvent( |
double timestamp, |
unsigned flags, |
const char* arg1Name, |
- const ARG1_TYPE& arg1Val, |
+ ARG1_TYPE&& arg1Val, |
const char* arg2Name, |
- const ARG2_TYPE& arg2Val) |
+ ARG2_TYPE&& arg2Val) |
{ |
const int numArgs = 2; |
const char* argNames[2] = { arg1Name, arg2Name }; |
@@ -535,8 +535,8 @@ static inline TraceEventHandle addTraceEvent( |
return TRACE_EVENT_API_ADD_TRACE_EVENT( |
phase, categoryEnabled, name, scope, id, bindId, timestamp, |
numArgs, argNames, argTypes, argValues, |
- moveFromIfTracedValue(arg1Val), |
- moveFromIfTracedValue(arg2Val), |
+ moveFromIfTracedValue(std::forward<ARG1_TYPE>(arg1Val)), |
+ moveFromIfTracedValue(std::forward<ARG2_TYPE>(arg2Val)), |
flags); |
} |
return TRACE_EVENT_API_ADD_TRACE_EVENT( |
@@ -566,11 +566,11 @@ static inline TraceEventHandle addTraceEvent( |
unsigned long long id, |
unsigned flags, |
const char* arg1Name, |
- const ARG1_TYPE& arg1Val) |
+ ARG1_TYPE&& arg1Val) |
{ |
return addTraceEvent(phase, categoryEnabled, name, scope, id, |
blink::TraceEvent::noBindId, EventTracer::systemTraceTime(), flags, |
- arg1Name, arg1Val); |
+ arg1Name, std::forward<ARG1_TYPE>(arg1Val)); |
} |
@@ -583,13 +583,14 @@ static inline TraceEventHandle addTraceEvent( |
unsigned long long id, |
unsigned flags, |
const char* arg1Name, |
- const ARG1_TYPE& arg1Val, |
+ ARG1_TYPE&& arg1Val, |
const char* arg2Name, |
- const ARG2_TYPE& arg2Val) |
+ ARG2_TYPE&& arg2Val) |
{ |
return addTraceEvent(phase, categoryEnabled, name, scope, id, |
blink::TraceEvent::noBindId, EventTracer::systemTraceTime(), flags, |
- arg1Name, arg1Val, arg2Name, arg2Val); |
+ arg1Name, std::forward<ARG1_TYPE>(arg1Val), |
+ arg2Name, std::forward<ARG2_TYPE>(arg2Val)); |
} |
// Used by TRACE_EVENTx macro. Do not use directly. |