diff options
Diffstat (limited to 'tools/trace/SkDebugfTracer.cpp')
-rw-r--r-- | tools/trace/SkDebugfTracer.cpp | 13 |
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) { |