ACIL FM
Dark
Refresh
Current DIR:
/opt/cpanel/ea-nodejs22/include/node/cppgc
/
opt
cpanel
ea-nodejs22
include
node
cppgc
Upload
Zip Selected
Delete Selected
Pilih semua
Nama
Ukuran
Permission
Aksi
internal
-
chmod
Open
Rename
Delete
allocation.h
11.61 MB
chmod
View
DL
Edit
Rename
Delete
common.h
643 B
chmod
View
DL
Edit
Rename
Delete
cross-thread-persistent.h
14.81 MB
chmod
View
DL
Edit
Rename
Delete
custom-space.h
2.4 MB
chmod
View
DL
Edit
Rename
Delete
default-platform.h
2.18 MB
chmod
View
DL
Edit
Rename
Delete
ephemeron-pair.h
804 B
chmod
View
DL
Edit
Rename
Delete
explicit-management.h
3.29 MB
chmod
View
DL
Edit
Rename
Delete
garbage-collected.h
3.11 MB
chmod
View
DL
Edit
Rename
Delete
heap-consistency.h
11.74 MB
chmod
View
DL
Edit
Rename
Delete
heap-handle.h
1.26 MB
chmod
View
DL
Edit
Rename
Delete
heap-state.h
2.57 MB
chmod
View
DL
Edit
Rename
Delete
heap-statistics.h
3.89 MB
chmod
View
DL
Edit
Rename
Delete
heap.h
5.7 MB
chmod
View
DL
Edit
Rename
Delete
liveness-broker.h
2.34 MB
chmod
View
DL
Edit
Rename
Delete
macros.h
1.31 MB
chmod
View
DL
Edit
Rename
Delete
member.h
23.55 MB
chmod
View
DL
Edit
Rename
Delete
name-provider.h
1.99 MB
chmod
View
DL
Edit
Rename
Delete
object-size-trait.h
1.6 MB
chmod
View
DL
Edit
Rename
Delete
persistent.h
13.61 MB
chmod
View
DL
Edit
Rename
Delete
platform.h
5.9 MB
chmod
View
DL
Edit
Rename
Delete
prefinalizer.h
2.88 MB
chmod
View
DL
Edit
Rename
Delete
process-heap-statistics.h
1009 B
chmod
View
DL
Edit
Rename
Delete
sentinel-pointer.h
1.18 MB
chmod
View
DL
Edit
Rename
Delete
source-location.h
414 B
chmod
View
DL
Edit
Rename
Delete
testing.h
2.96 MB
chmod
View
DL
Edit
Rename
Delete
trace-trait.h
3.4 MB
chmod
View
DL
Edit
Rename
Delete
type-traits.h
8.45 MB
chmod
View
DL
Edit
Rename
Delete
visitor.h
18.08 MB
chmod
View
DL
Edit
Rename
Delete
Edit file: /opt/cpanel/ea-nodejs22/include/node/cppgc/liveness-broker.h
// Copyright 2020 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef INCLUDE_CPPGC_LIVENESS_BROKER_H_ #define INCLUDE_CPPGC_LIVENESS_BROKER_H_ #include "cppgc/heap.h" #include "cppgc/member.h" #include "cppgc/sentinel-pointer.h" #include "cppgc/trace-trait.h" #include "v8config.h" // NOLINT(build/include_directory) namespace cppgc { namespace internal { class LivenessBrokerFactory; } // namespace internal /** * The broker is passed to weak callbacks to allow (temporarily) querying * the liveness state of an object. References to non-live objects must be * cleared when `IsHeapObjectAlive()` returns false. * * \code * class GCedWithCustomWeakCallback final * : public GarbageCollected<GCedWithCustomWeakCallback> { * public: * UntracedMember<Bar> bar; * * void CustomWeakCallbackMethod(const LivenessBroker& broker) { * if (!broker.IsHeapObjectAlive(bar)) * bar = nullptr; * } * * void Trace(cppgc::Visitor* visitor) const { * visitor->RegisterWeakCallbackMethod< * GCedWithCustomWeakCallback, * &GCedWithCustomWeakCallback::CustomWeakCallbackMethod>(this); * } * }; * \endcode */ class V8_EXPORT LivenessBroker final { public: template <typename T> bool IsHeapObjectAlive(const T* object) const { // - nullptr objects are considered alive to allow weakness to be used from // stack while running into a conservative GC. Treating nullptr as dead // would mean that e.g. custom collections could not be strongified on // stack. // - Sentinel pointers are also preserved in weakness and not cleared. return !object || object == kSentinelPointer || IsHeapObjectAliveImpl( TraceTrait<T>::GetTraceDescriptor(object).base_object_payload); } template <typename T> bool IsHeapObjectAlive(const WeakMember<T>& weak_member) const { return IsHeapObjectAlive<T>(weak_member.Get()); } template <typename T> bool IsHeapObjectAlive(const UntracedMember<T>& untraced_member) const { return IsHeapObjectAlive<T>(untraced_member.Get()); } private: LivenessBroker() = default; bool IsHeapObjectAliveImpl(const void*) const; friend class internal::LivenessBrokerFactory; }; } // namespace cppgc #endif // INCLUDE_CPPGC_LIVENESS_BROKER_H_
Simpan
Batal
Isi Zip:
Unzip
Create
Buat Folder
Buat File
Terminal / Execute
Run
Chmod Bulk
All File
All Folder
All File dan Folder
Apply