James Robinson 209153d192 Fix up strings Sky passes to base/trace_event
String parameters passed to the trace macros in base/trace_event must
either be std::string (which Sky doesn't use very much), pointers to
null terminated C-style strings that live forever (like a string
literal) pointers to C-style strings that are annotated by macro as
needing to be copied. This fixes up a few instances that passed pointers
to temporary strings without the copying annotation or pointers to
non-null-terminated strings so the trace data doesn't have random
garbage memory in it.

R=eseidel@chromium.org

Review URL: https://codereview.chromium.org/1107853003
2015-05-05 17:59:09 -07:00

38 lines
926 B
C++

// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "sky/engine/config.h"
#include "sky/engine/core/frame/Tracing.h"
#include "base/trace_event/trace_event.h"
#include "sky/engine/wtf/text/StringUTF8Adaptor.h"
namespace blink {
Tracing::Tracing()
{
}
Tracing::~Tracing()
{
}
void Tracing::begin(const String& name)
{
StringUTF8Adaptor utf8(name);
// TRACE_EVENT_COPY_BEGIN0 needs a c-style null-terminated string.
CString cstring(utf8.data(), utf8.length());
TRACE_EVENT_COPY_BEGIN0("script", cstring.data());
}
void Tracing::end(const String& name)
{
StringUTF8Adaptor utf8(name);
// TRACE_EVENT_COPY_END0 needs a c-style null-terminated string.
CString cstring(utf8.data(), utf8.length());
TRACE_EVENT_COPY_END0("script", cstring.data());
}
} // namespace blink