v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
gc-info.cc
Go to the documentation of this file.
1
// Copyright 2020 the V8 project authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style license that can be
3
// found in the LICENSE file.
4
5
#include "
include/cppgc/internal/gc-info.h
"
6
7
#include "
include/cppgc/internal/name-trait.h
"
8
#include "
include/v8config.h
"
9
#include "
src/heap/cppgc/gc-info-table.h
"
10
11
namespace
cppgc::internal
{
12
13
namespace
{
14
15
HeapObjectName GetHiddenName(
16
const
void
*,
HeapObjectNameForUnnamedObject
name_retrieval_mode) {
17
return
{
18
NameProvider::kHiddenName
,
19
name_retrieval_mode ==
HeapObjectNameForUnnamedObject::kUseHiddenName
};
20
}
21
22
}
// namespace
23
24
// static
25
GCInfoIndex
EnsureGCInfoIndexTrait::EnsureGCInfoIndex
(
26
std::atomic<GCInfoIndex>& registered_index,
TraceCallback
trace_callback,
27
FinalizationCallback
finalization_callback,
NameCallback
name_callback) {
28
return
GlobalGCInfoTable::GetMutable
().
RegisterNewGCInfo
(
29
registered_index,
30
GCInfo
(finalization_callback, trace_callback, name_callback));
31
}
32
33
// static
34
GCInfoIndex
EnsureGCInfoIndexTrait::EnsureGCInfoIndex
(
35
std::atomic<GCInfoIndex>& registered_index,
TraceCallback
trace_callback,
36
FinalizationCallback
finalization_callback) {
37
return
GlobalGCInfoTable::GetMutable
().
RegisterNewGCInfo
(
38
registered_index,
39
GCInfo
(finalization_callback, trace_callback, GetHiddenName));
40
}
41
42
// static
43
GCInfoIndex
EnsureGCInfoIndexTrait::EnsureGCInfoIndex
(
44
std::atomic<GCInfoIndex>& registered_index,
TraceCallback
trace_callback,
45
NameCallback
name_callback) {
46
return
GlobalGCInfoTable::GetMutable
().
RegisterNewGCInfo
(
47
registered_index,
GCInfo
(
nullptr
, trace_callback, name_callback));
48
}
49
50
// static
51
GCInfoIndex
EnsureGCInfoIndexTrait::EnsureGCInfoIndex
(
52
std::atomic<GCInfoIndex>& registered_index,
TraceCallback
trace_callback) {
53
return
GlobalGCInfoTable::GetMutable
().
RegisterNewGCInfo
(
54
registered_index,
GCInfo
(
nullptr
, trace_callback, GetHiddenName));
55
}
56
57
}
// namespace cppgc::internal
cppgc::NameProvider::kHiddenName
static constexpr const char kHiddenName[]
Definition
name-provider.h:31
cppgc::internal::GCInfoTable::RegisterNewGCInfo
GCInfoIndex RegisterNewGCInfo(std::atomic< uint16_t > &, const GCInfo &info)
Definition
gc-info-table.cc:127
cppgc::internal::GlobalGCInfoTable::GetMutable
static GCInfoTable & GetMutable()
Definition
gc-info-table.h:112
gc-info-table.h
gc-info.h
name-trait.h
cppgc::internal
Definition
cross-heap-remembered-set.h:14
cppgc::internal::FinalizationCallback
void(*)(void *) FinalizationCallback
Definition
finalizer-trait.h:15
cppgc::internal::HeapObjectNameForUnnamedObject
HeapObjectNameForUnnamedObject
Definition
name-trait.h:62
cppgc::internal::HeapObjectNameForUnnamedObject::kUseHiddenName
@ kUseHiddenName
cppgc::internal::NameCallback
HeapObjectName(*)(const void *, HeapObjectNameForUnnamedObject) NameCallback
Definition
name-trait.h:133
cppgc::internal::GCInfoIndex
uint16_t GCInfoIndex
Definition
gc-info.h:21
cppgc::TraceCallback
void(*)(Visitor *visitor, const void *object) TraceCallback
Definition
trace-trait.h:38
cppgc::internal::EnsureGCInfoIndexTrait::EnsureGCInfoIndex
static GCInfoIndex V8_PRESERVE_MOST EnsureGCInfoIndex(std::atomic< GCInfoIndex > &, TraceCallback, FinalizationCallback, NameCallback)
Definition
gc-info.cc:25
cppgc::internal::GCInfo
Definition
gc-info-table.h:24
v8config.h
src
heap
cppgc
gc-info.cc
Generated on Sun Apr 6 2025 21:08:54 for v8 by
1.12.0