blob: e5e10e0d12931c499cb873cf111d520ad06699f2 [file] [log] [blame]
// Copyright 2012 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.
#if defined(TYPE_PROFILING)
#include "base/allocator/type_profiler_tcmalloc.h"
#include "base/allocator/type_profiler_control.h"
#include "third_party/tcmalloc/chromium/src/gperftools/heap-profiler.h"
#include "third_party/tcmalloc/chromium/src/gperftools/type_profiler_map.h"
namespace base {
namespace type_profiler {
void* NewInterceptForTCMalloc(void* ptr,
size_t size,
const std::type_info& type) {
if (Controller::IsProfiling())
InsertType(ptr, size, type);
return ptr;
}
void* DeleteInterceptForTCMalloc(void* ptr,
size_t size,
const std::type_info& type) {
if (Controller::IsProfiling())
EraseType(ptr);
return ptr;
}
} // namespace type_profiler
} // namespace base
#endif // defined(TYPE_PROFILING)