v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
unified-heap-marking-state.h
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
#ifndef V8_HEAP_CPPGC_JS_UNIFIED_HEAP_MARKING_STATE_H_
6
#define V8_HEAP_CPPGC_JS_UNIFIED_HEAP_MARKING_STATE_H_
7
8
#include "
include/v8-cppgc.h
"
9
#include "
src/handles/traced-handles.h
"
10
#include "
src/heap/mark-compact.h
"
11
#include "
src/heap/marking-worklist.h
"
12
13
namespace
v8
{
14
namespace
internal
{
15
16
// `UnifiedHeapMarkingState` is used to handle `TracedReferenceBase` and
17
// friends. It is used when `CppHeap` is attached but also detached. In detached
18
// mode, the expectation is that no non-null `TracedReferenceBase` is found.
19
class
UnifiedHeapMarkingState
final {
20
public
:
21
UnifiedHeapMarkingState
(
Heap
*,
MarkingWorklists::Local
*,
22
cppgc::internal::CollectionType
);
23
24
UnifiedHeapMarkingState
(
const
UnifiedHeapMarkingState
&) =
delete
;
25
UnifiedHeapMarkingState
&
operator=
(
const
UnifiedHeapMarkingState
&) =
delete
;
26
27
void
Update
(
MarkingWorklists::Local
*);
28
29
V8_INLINE
void
MarkAndPush
(
const
TracedReferenceBase
&);
30
31
Heap
*
heap
()
const
{
return
heap_
; }
32
33
private
:
34
Heap
*
const
heap_
;
35
MarkingState
*
const
marking_state_
;
36
MarkingWorklists::Local
*
local_marking_worklist_
=
nullptr
;
37
const
TracedHandles::MarkMode
mark_mode_
;
38
};
39
40
}
// namespace internal
41
}
// namespace v8
42
43
#endif
// V8_HEAP_CPPGC_JS_UNIFIED_HEAP_MARKING_STATE_H_
v8::TracedReferenceBase
Definition
v8-traced-handle.h:54
v8::internal::Heap
Definition
heap.h:195
v8::internal::MarkingState
Definition
marking-state.h:56
v8::internal::MarkingWorklists::Local
Definition
marking-worklist.h:132
v8::internal::TracedHandles::MarkMode
MarkMode
Definition
traced-handles.h:277
v8::internal::UnifiedHeapMarkingState
Definition
unified-heap-marking-state.h:19
v8::internal::UnifiedHeapMarkingState::UnifiedHeapMarkingState
UnifiedHeapMarkingState(Heap *, MarkingWorklists::Local *, cppgc::internal::CollectionType)
Definition
unified-heap-marking-state.cc:14
v8::internal::UnifiedHeapMarkingState::heap_
Heap *const heap_
Definition
unified-heap-marking-state.h:34
v8::internal::UnifiedHeapMarkingState::operator=
UnifiedHeapMarkingState & operator=(const UnifiedHeapMarkingState &)=delete
v8::internal::UnifiedHeapMarkingState::MarkAndPush
V8_INLINE void MarkAndPush(const TracedReferenceBase &)
Definition
unified-heap-marking-state-inl.h:33
v8::internal::UnifiedHeapMarkingState::UnifiedHeapMarkingState
UnifiedHeapMarkingState(const UnifiedHeapMarkingState &)=delete
v8::internal::UnifiedHeapMarkingState::heap
Heap * heap() const
Definition
unified-heap-marking-state.h:31
v8::internal::UnifiedHeapMarkingState::mark_mode_
const TracedHandles::MarkMode mark_mode_
Definition
unified-heap-marking-state.h:37
v8::internal::UnifiedHeapMarkingState::local_marking_worklist_
MarkingWorklists::Local * local_marking_worklist_
Definition
unified-heap-marking-state.h:36
v8::internal::UnifiedHeapMarkingState::Update
void Update(MarkingWorklists::Local *)
Definition
unified-heap-marking-state.cc:26
v8::internal::UnifiedHeapMarkingState::marking_state_
MarkingState *const marking_state_
Definition
unified-heap-marking-state.h:35
mark-compact.h
marking-worklist.h
cppgc::internal::CollectionType
CollectionType
Definition
heap-config.h:15
v8::internal::internal
internal
Definition
wasm-objects-inl.h:458
v8
Definition
api-arguments-inl.h:19
traced-handles.h
v8-cppgc.h
V8_INLINE
#define V8_INLINE
Definition
v8config.h:500
src
heap
cppgc-js
unified-heap-marking-state.h
Generated on Sun Apr 6 2025 21:08:54 for v8 by
1.12.0