| Index: third_party/tcmalloc/chromium/src/type_profiler_map.cc
|
| diff --git a/third_party/tcmalloc/chromium/src/type_profiler_map.cc b/third_party/tcmalloc/chromium/src/type_profiler_map.cc
|
| deleted file mode 100644
|
| index a2f21f82bab3b2ef50145ce90bd98d9a5adb6fc0..0000000000000000000000000000000000000000
|
| --- a/third_party/tcmalloc/chromium/src/type_profiler_map.cc
|
| +++ /dev/null
|
| @@ -1,112 +0,0 @@
|
| -// 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 <config.h>
|
| -
|
| -#include <new>
|
| -#include <stddef.h>
|
| -#include <typeinfo>
|
| -
|
| -#include <gperftools/type_profiler_map.h>
|
| -
|
| -#include "addressmap-inl.h"
|
| -#include "base/logging.h"
|
| -#include "base/low_level_alloc.h"
|
| -#include "base/spinlock.h"
|
| -#include "tcmalloc_guard.h"
|
| -
|
| -namespace {
|
| -
|
| -const TCMallocGuard tcmalloc_initializer;
|
| -
|
| -//----------------------------------------------------------------------
|
| -// A struct to store size and type_info of an object
|
| -//----------------------------------------------------------------------
|
| -
|
| -struct ObjectInfo {
|
| - public:
|
| - ObjectInfo(): size(0), type(NULL) {}
|
| - ObjectInfo(size_t size_arg, const std::type_info* type_arg)
|
| - : size(size_arg),
|
| - type(type_arg) {
|
| - }
|
| -
|
| - size_t size;
|
| - const std::type_info* type;
|
| -};
|
| -
|
| -//----------------------------------------------------------------------
|
| -// Locking
|
| -//----------------------------------------------------------------------
|
| -
|
| -SpinLock g_type_profiler_lock(SpinLock::LINKER_INITIALIZED);
|
| -
|
| -//----------------------------------------------------------------------
|
| -// Simple allocator for type_info map's internal memory
|
| -//----------------------------------------------------------------------
|
| -
|
| -LowLevelAlloc::Arena* g_type_profiler_map_memory = NULL;
|
| -
|
| -void* TypeProfilerMalloc(size_t bytes) {
|
| - return LowLevelAlloc::AllocWithArena(bytes, g_type_profiler_map_memory);
|
| -}
|
| -
|
| -void TypeProfilerFree(void* p) {
|
| - LowLevelAlloc::Free(p);
|
| -}
|
| -
|
| -//----------------------------------------------------------------------
|
| -// Profiling control/state data
|
| -//----------------------------------------------------------------------
|
| -
|
| -AddressMap<ObjectInfo>* g_type_profiler_map = NULL;
|
| -
|
| -//----------------------------------------------------------------------
|
| -// Manage type_info map
|
| -//----------------------------------------------------------------------
|
| -
|
| -void InitializeTypeProfilerMemory() {
|
| - if (g_type_profiler_map_memory != NULL) {
|
| - RAW_DCHECK(g_type_profiler_map != NULL, "TypeProfilerMap is NULL");
|
| - return;
|
| - }
|
| -
|
| - g_type_profiler_map_memory =
|
| - LowLevelAlloc::NewArena(0, LowLevelAlloc::DefaultArena());
|
| -
|
| - g_type_profiler_map =
|
| - new(TypeProfilerMalloc(sizeof(*g_type_profiler_map)))
|
| - AddressMap<ObjectInfo>(TypeProfilerMalloc, TypeProfilerFree);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -void InsertType(void* address, size_t size, const std::type_info& type) {
|
| - SpinLockHolder lock(&g_type_profiler_lock);
|
| - InitializeTypeProfilerMemory();
|
| -
|
| - g_type_profiler_map->Insert(address, ObjectInfo(size, &type));
|
| -}
|
| -
|
| -void EraseType(void* address) {
|
| - SpinLockHolder lock(&g_type_profiler_lock);
|
| - InitializeTypeProfilerMemory();
|
| -
|
| - ObjectInfo obj;
|
| - g_type_profiler_map->FindAndRemove(address, &obj);
|
| -}
|
| -
|
| -const std::type_info* LookupType(const void* address) {
|
| - SpinLockHolder lock(&g_type_profiler_lock);
|
| - InitializeTypeProfilerMemory();
|
| -
|
| - const ObjectInfo* found = g_type_profiler_map->Find(address);
|
| - if (found == NULL)
|
| - return NULL;
|
| - return found->type;
|
| -}
|
| -
|
| -#endif // defined(TYPE_PROFILING)
|
|
|