aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/trace/SkDebugfTracer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/trace/SkDebugfTracer.cpp')
-rw-r--r--tools/trace/SkDebugfTracer.cpp13
1 files changed, 6 insertions, 7 deletions
diff --git a/tools/trace/SkDebugfTracer.cpp b/tools/trace/SkDebugfTracer.cpp
index fe0da30b84..d694b8ce9a 100644
--- a/tools/trace/SkDebugfTracer.cpp
+++ b/tools/trace/SkDebugfTracer.cpp
@@ -24,11 +24,11 @@ SkEventTracer::Handle SkDebugfTracer::addTraceEvent(char phase,
} else {
args.append(" ");
}
+ skia::tracing_internals::TraceValueUnion value;
+ value.as_uint = argValues[i];
switch (argTypes[i]) {
case TRACE_VALUE_TYPE_BOOL:
- args.appendf("%s=%s",
- argNames[i],
- (*reinterpret_cast<bool*>(argValues[i]) ? "true" : "false"));
+ args.appendf("%s=%s", argNames[i], value.as_bool ? "true" : "false");
break;
case TRACE_VALUE_TYPE_UINT:
args.appendf("%s=%u", argNames[i], static_cast<uint32_t>(argValues[i]));
@@ -37,16 +37,15 @@ SkEventTracer::Handle SkDebugfTracer::addTraceEvent(char phase,
args.appendf("%s=%d", argNames[i], static_cast<int32_t>(argValues[i]));
break;
case TRACE_VALUE_TYPE_DOUBLE:
- args.appendf("%s=%g", argNames[i], *SkTCast<const double*>(&argValues[i]));
+ args.appendf("%s=%g", argNames[i], value.as_double);
break;
case TRACE_VALUE_TYPE_POINTER:
- args.appendf("%s=0x%p", argNames[i], reinterpret_cast<void*>(argValues[i]));
+ args.appendf("%s=0x%p", argNames[i], value.as_pointer);
break;
case TRACE_VALUE_TYPE_STRING:
case TRACE_VALUE_TYPE_COPY_STRING: {
static constexpr size_t kMaxLen = 20;
- const char* str = reinterpret_cast<const char*>(argValues[i]);
- SkString string(str);
+ SkString string(value.as_string);
size_t truncAt = string.size();
size_t newLineAt = SkStrFind(string.c_str(), "\n");
if (newLineAt > 0) {