v8
14.1.146 (node 25.0.0)
V8 is Google's open source JavaScript engine
Loading...
Searching...
No Matches
sentinel-pointer.h
Go to the documentation of this file.
1
// Copyright 2021 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
INCLUDE_CPPGC_SENTINEL_POINTER_H_
6
#
define
INCLUDE_CPPGC_SENTINEL_POINTER_H_
7
8
#
include
<
cstdint
>
9
10
#
include
"cppgc/internal/api-constants.h"
11
12
namespace
cppgc
{
13
namespace
internal
{
14
15
// Special tag type used to denote some sentinel member. The semantics of the
16
// sentinel is defined by the embedder.
17
struct
SentinelPointer
{
18
#
if
defined
(
CPPGC_POINTER_COMPRESSION
)
19
static
constexpr
intptr_t
kSentinelValue
=
20
1 <<
api_constants
::
kPointerCompressionShift
;
21
#
else
// !defined(CPPGC_POINTER_COMPRESSION)
22
static
constexpr
intptr_t
kSentinelValue
= 0b10;
23
#
endif
// !defined(CPPGC_POINTER_COMPRESSION)
24
template
<
typename
T>
25
operator
T*()
const
{
26
return
reinterpret_cast
<T*>(
kSentinelValue
);
27
}
28
// Hidden friends.
29
friend
bool
operator
==(
SentinelPointer
,
SentinelPointer
) {
return
true
; }
30
friend
bool
operator
!=(
SentinelPointer
,
SentinelPointer
) {
return
false
; }
31
};
32
33
}
// namespace internal
34
35
constexpr
internal
::
SentinelPointer
kSentinelPointer
;
36
37
}
// namespace cppgc
38
39
#
endif
// INCLUDE_CPPGC_SENTINEL_POINTER_H_
cppgc::internal
Definition
allocation.h:45
cppgc
Definition
allocation.h:38
cppgc::kSentinelPointer
constexpr internal::SentinelPointer kSentinelPointer
Definition
sentinel-pointer.h:35
cppgc::internal::SentinelPointer
Definition
sentinel-pointer.h:17
cppgc::internal::SentinelPointer::operator==
friend bool operator==(SentinelPointer, SentinelPointer)
Definition
sentinel-pointer.h:29
cppgc::internal::SentinelPointer::kSentinelValue
static constexpr intptr_t kSentinelValue
Definition
sentinel-pointer.h:22
cppgc::internal::SentinelPointer::operator T*
operator T*() const
Definition
sentinel-pointer.h:25
cppgc::internal::SentinelPointer::operator!=
friend bool operator!=(SentinelPointer, SentinelPointer)
Definition
sentinel-pointer.h:30
include
cppgc
sentinel-pointer.h
Generated on Thu Oct 30 2025 09:27:00 for v8 by
1.9.8