node-linux-arm64 20.5.0 → 20.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +262 -0
- package/LICENSE +1 -1
- package/README.md +6 -0
- package/bin/node +0 -0
- package/include/node/common.gypi +1 -1
- package/include/node/cppgc/allocation.h +310 -0
- package/include/node/cppgc/cross-thread-persistent.h +466 -0
- package/include/node/cppgc/custom-space.h +97 -0
- package/include/node/cppgc/default-platform.h +67 -0
- package/include/node/cppgc/ephemeron-pair.h +30 -0
- package/include/node/cppgc/explicit-management.h +100 -0
- package/include/node/cppgc/garbage-collected.h +106 -0
- package/include/node/cppgc/heap-consistency.h +309 -0
- package/include/node/cppgc/heap-handle.h +48 -0
- package/include/node/cppgc/heap-state.h +82 -0
- package/include/node/cppgc/heap-statistics.h +120 -0
- package/include/node/cppgc/heap.h +202 -0
- package/include/node/cppgc/internal/api-constants.h +68 -0
- package/include/node/cppgc/internal/atomic-entry-flag.h +48 -0
- package/include/node/cppgc/internal/base-page-handle.h +45 -0
- package/include/node/cppgc/internal/caged-heap-local-data.h +111 -0
- package/include/node/cppgc/internal/caged-heap.h +61 -0
- package/include/node/cppgc/internal/compiler-specific.h +38 -0
- package/include/node/cppgc/internal/finalizer-trait.h +93 -0
- package/include/node/cppgc/internal/gc-info.h +157 -0
- package/include/node/cppgc/internal/logging.h +50 -0
- package/include/node/cppgc/internal/member-storage.h +248 -0
- package/include/node/cppgc/internal/name-trait.h +137 -0
- package/include/node/cppgc/internal/persistent-node.h +214 -0
- package/include/node/cppgc/internal/pointer-policies.h +243 -0
- package/include/node/cppgc/internal/write-barrier.h +487 -0
- package/include/node/cppgc/liveness-broker.h +78 -0
- package/include/node/cppgc/macros.h +35 -0
- package/include/node/cppgc/member.h +604 -0
- package/include/node/cppgc/name-provider.h +65 -0
- package/include/node/cppgc/object-size-trait.h +58 -0
- package/include/node/cppgc/persistent.h +373 -0
- package/include/node/cppgc/platform.h +158 -0
- package/include/node/cppgc/prefinalizer.h +75 -0
- package/include/node/cppgc/process-heap-statistics.h +36 -0
- package/include/node/cppgc/sentinel-pointer.h +32 -0
- package/include/node/cppgc/source-location.h +92 -0
- package/include/node/cppgc/testing.h +106 -0
- package/include/node/cppgc/trace-trait.h +120 -0
- package/include/node/cppgc/type-traits.h +250 -0
- package/include/node/cppgc/visitor.h +426 -0
- package/include/node/node.h +26 -3
- package/include/node/node_version.h +1 -1
- package/include/node/openssl/archs/BSD-x86/asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/BSD-x86/asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/BSD-x86/asm_avx2/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/BSD-x86/asm_avx2/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/BSD-x86/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/BSD-x86/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/BSD-x86_64/asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/BSD-x86_64/asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/BSD-x86_64/asm_avx2/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/BSD-x86_64/asm_avx2/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/BSD-x86_64/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/BSD-x86_64/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/VC-WIN32/asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/VC-WIN32/asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/VC-WIN32/asm_avx2/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/VC-WIN32/asm_avx2/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/VC-WIN32/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/VC-WIN32/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/VC-WIN64-ARM/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/VC-WIN64-ARM/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/VC-WIN64A/asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/VC-WIN64A/asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/VC-WIN64A/asm_avx2/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/VC-WIN64A/asm_avx2/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/VC-WIN64A/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/VC-WIN64A/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/aix64-gcc-as/asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/aix64-gcc-as/asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/aix64-gcc-as/asm_avx2/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/aix64-gcc-as/asm_avx2/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/aix64-gcc-as/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/aix64-gcc-as/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/darwin-i386-cc/asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/darwin-i386-cc/asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/darwin-i386-cc/asm_avx2/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/darwin-i386-cc/asm_avx2/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/darwin-i386-cc/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/darwin-i386-cc/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/darwin64-arm64-cc/asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/darwin64-arm64-cc/asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/darwin64-arm64-cc/asm_avx2/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/darwin64-arm64-cc/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/darwin64-arm64-cc/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/darwin64-x86_64-cc/asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/darwin64-x86_64-cc/asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/darwin64-x86_64-cc/asm_avx2/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/darwin64-x86_64-cc/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux-aarch64/asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux-aarch64/asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux-aarch64/asm_avx2/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux-aarch64/asm_avx2/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux-aarch64/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux-aarch64/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux-armv4/asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux-armv4/asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux-armv4/asm_avx2/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux-armv4/asm_avx2/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux-armv4/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux-armv4/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux-elf/asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux-elf/asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux-elf/asm_avx2/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux-elf/asm_avx2/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux-elf/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux-elf/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux-ppc64le/asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux-ppc64le/asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux-ppc64le/asm_avx2/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux-ppc64le/asm_avx2/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux-ppc64le/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux-ppc64le/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux-x86_64/asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux-x86_64/asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux-x86_64/asm_avx2/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux-x86_64/asm_avx2/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux-x86_64/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux-x86_64/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux32-s390x/asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux32-s390x/asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux32-s390x/asm_avx2/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux32-s390x/asm_avx2/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux32-s390x/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux32-s390x/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux64-loongarch64/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux64-loongarch64/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux64-mips64/asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux64-mips64/asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux64-mips64/asm_avx2/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux64-mips64/asm_avx2/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux64-mips64/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux64-mips64/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux64-riscv64/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux64-riscv64/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux64-s390x/asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux64-s390x/asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux64-s390x/asm_avx2/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux64-s390x/asm_avx2/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/linux64-s390x/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/linux64-s390x/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/solaris-x86-gcc/asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/solaris-x86-gcc/asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/solaris-x86-gcc/asm_avx2/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/solaris-x86-gcc/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/solaris-x86-gcc/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/solaris64-x86_64-gcc/asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/solaris64-x86_64-gcc/asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/solaris64-x86_64-gcc/asm_avx2/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/crypto/buildinf.h +1 -1
- package/include/node/openssl/archs/solaris64-x86_64-gcc/no-asm/include/openssl/opensslv.h +5 -5
- package/include/node/openssl/dh.h +6 -2
- package/include/node/openssl/x509err.h +2 -1
- package/include/node/v8-cppgc.h +245 -0
- package/package.json +1 -1
|
@@ -0,0 +1,426 @@
|
|
|
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 INCLUDE_CPPGC_VISITOR_H_
|
|
6
|
+
#define INCLUDE_CPPGC_VISITOR_H_
|
|
7
|
+
|
|
8
|
+
#include "cppgc/custom-space.h"
|
|
9
|
+
#include "cppgc/ephemeron-pair.h"
|
|
10
|
+
#include "cppgc/garbage-collected.h"
|
|
11
|
+
#include "cppgc/internal/logging.h"
|
|
12
|
+
#include "cppgc/internal/pointer-policies.h"
|
|
13
|
+
#include "cppgc/liveness-broker.h"
|
|
14
|
+
#include "cppgc/member.h"
|
|
15
|
+
#include "cppgc/sentinel-pointer.h"
|
|
16
|
+
#include "cppgc/source-location.h"
|
|
17
|
+
#include "cppgc/trace-trait.h"
|
|
18
|
+
#include "cppgc/type-traits.h"
|
|
19
|
+
|
|
20
|
+
namespace cppgc {
|
|
21
|
+
|
|
22
|
+
namespace internal {
|
|
23
|
+
template <typename T, typename WeaknessPolicy, typename LocationPolicy,
|
|
24
|
+
typename CheckingPolicy>
|
|
25
|
+
class BasicCrossThreadPersistent;
|
|
26
|
+
template <typename T, typename WeaknessPolicy, typename LocationPolicy,
|
|
27
|
+
typename CheckingPolicy>
|
|
28
|
+
class BasicPersistent;
|
|
29
|
+
class ConservativeTracingVisitor;
|
|
30
|
+
class VisitorBase;
|
|
31
|
+
class VisitorFactory;
|
|
32
|
+
} // namespace internal
|
|
33
|
+
|
|
34
|
+
using WeakCallback = void (*)(const LivenessBroker&, const void*);
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Visitor passed to trace methods. All managed pointers must have called the
|
|
38
|
+
* Visitor's trace method on them.
|
|
39
|
+
*
|
|
40
|
+
* \code
|
|
41
|
+
* class Foo final : public GarbageCollected<Foo> {
|
|
42
|
+
* public:
|
|
43
|
+
* void Trace(Visitor* visitor) const {
|
|
44
|
+
* visitor->Trace(foo_);
|
|
45
|
+
* visitor->Trace(weak_foo_);
|
|
46
|
+
* }
|
|
47
|
+
* private:
|
|
48
|
+
* Member<Foo> foo_;
|
|
49
|
+
* WeakMember<Foo> weak_foo_;
|
|
50
|
+
* };
|
|
51
|
+
* \endcode
|
|
52
|
+
*/
|
|
53
|
+
class V8_EXPORT Visitor {
|
|
54
|
+
public:
|
|
55
|
+
class Key {
|
|
56
|
+
private:
|
|
57
|
+
Key() = default;
|
|
58
|
+
friend class internal::VisitorFactory;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
explicit Visitor(Key) {}
|
|
62
|
+
|
|
63
|
+
virtual ~Visitor() = default;
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Trace method for Member.
|
|
67
|
+
*
|
|
68
|
+
* \param member Member reference retaining an object.
|
|
69
|
+
*/
|
|
70
|
+
template <typename T>
|
|
71
|
+
void Trace(const Member<T>& member) {
|
|
72
|
+
const T* value = member.GetRawAtomic();
|
|
73
|
+
CPPGC_DCHECK(value != kSentinelPointer);
|
|
74
|
+
TraceImpl(value);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* Trace method for WeakMember.
|
|
79
|
+
*
|
|
80
|
+
* \param weak_member WeakMember reference weakly retaining an object.
|
|
81
|
+
*/
|
|
82
|
+
template <typename T>
|
|
83
|
+
void Trace(const WeakMember<T>& weak_member) {
|
|
84
|
+
static_assert(sizeof(T), "Pointee type must be fully defined.");
|
|
85
|
+
static_assert(internal::IsGarbageCollectedOrMixinType<T>::value,
|
|
86
|
+
"T must be GarbageCollected or GarbageCollectedMixin type");
|
|
87
|
+
static_assert(!internal::IsAllocatedOnCompactableSpace<T>::value,
|
|
88
|
+
"Weak references to compactable objects are not allowed");
|
|
89
|
+
|
|
90
|
+
const T* value = weak_member.GetRawAtomic();
|
|
91
|
+
|
|
92
|
+
// Bailout assumes that WeakMember emits write barrier.
|
|
93
|
+
if (!value) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
CPPGC_DCHECK(value != kSentinelPointer);
|
|
98
|
+
VisitWeak(value, TraceTrait<T>::GetTraceDescriptor(value),
|
|
99
|
+
&HandleWeak<WeakMember<T>>, &weak_member);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
#if defined(CPPGC_POINTER_COMPRESSION)
|
|
103
|
+
/**
|
|
104
|
+
* Trace method for UncompressedMember.
|
|
105
|
+
*
|
|
106
|
+
* \param member UncompressedMember reference retaining an object.
|
|
107
|
+
*/
|
|
108
|
+
template <typename T>
|
|
109
|
+
void Trace(const subtle::UncompressedMember<T>& member) {
|
|
110
|
+
const T* value = member.GetRawAtomic();
|
|
111
|
+
CPPGC_DCHECK(value != kSentinelPointer);
|
|
112
|
+
TraceImpl(value);
|
|
113
|
+
}
|
|
114
|
+
#endif // defined(CPPGC_POINTER_COMPRESSION)
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Trace method for inlined objects that are not allocated themselves but
|
|
118
|
+
* otherwise follow managed heap layout and have a Trace() method.
|
|
119
|
+
*
|
|
120
|
+
* \param object reference of the inlined object.
|
|
121
|
+
*/
|
|
122
|
+
template <typename T>
|
|
123
|
+
void Trace(const T& object) {
|
|
124
|
+
#if V8_ENABLE_CHECKS
|
|
125
|
+
// This object is embedded in potentially multiple nested objects. The
|
|
126
|
+
// outermost object must not be in construction as such objects are (a) not
|
|
127
|
+
// processed immediately, and (b) only processed conservatively if not
|
|
128
|
+
// otherwise possible.
|
|
129
|
+
CheckObjectNotInConstruction(&object);
|
|
130
|
+
#endif // V8_ENABLE_CHECKS
|
|
131
|
+
TraceTrait<T>::Trace(this, &object);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/**
|
|
135
|
+
* Registers a weak callback method on the object of type T. See
|
|
136
|
+
* LivenessBroker for an usage example.
|
|
137
|
+
*
|
|
138
|
+
* \param object of type T specifying a weak callback method.
|
|
139
|
+
*/
|
|
140
|
+
template <typename T, void (T::*method)(const LivenessBroker&)>
|
|
141
|
+
void RegisterWeakCallbackMethod(const T* object) {
|
|
142
|
+
RegisterWeakCallback(&WeakCallbackMethodDelegate<T, method>, object);
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Trace method for EphemeronPair.
|
|
147
|
+
*
|
|
148
|
+
* \param ephemeron_pair EphemeronPair reference weakly retaining a key object
|
|
149
|
+
* and strongly retaining a value object in case the key object is alive.
|
|
150
|
+
*/
|
|
151
|
+
template <typename K, typename V>
|
|
152
|
+
void Trace(const EphemeronPair<K, V>& ephemeron_pair) {
|
|
153
|
+
TraceEphemeron(ephemeron_pair.key, &ephemeron_pair.value);
|
|
154
|
+
RegisterWeakCallbackMethod<EphemeronPair<K, V>,
|
|
155
|
+
&EphemeronPair<K, V>::ClearValueIfKeyIsDead>(
|
|
156
|
+
&ephemeron_pair);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Trace method for a single ephemeron. Used for tracing a raw ephemeron in
|
|
161
|
+
* which the `key` and `value` are kept separately.
|
|
162
|
+
*
|
|
163
|
+
* \param weak_member_key WeakMember reference weakly retaining a key object.
|
|
164
|
+
* \param member_value Member reference with ephemeron semantics.
|
|
165
|
+
*/
|
|
166
|
+
template <typename KeyType, typename ValueType>
|
|
167
|
+
void TraceEphemeron(const WeakMember<KeyType>& weak_member_key,
|
|
168
|
+
const Member<ValueType>* member_value) {
|
|
169
|
+
const KeyType* key = weak_member_key.GetRawAtomic();
|
|
170
|
+
if (!key) return;
|
|
171
|
+
|
|
172
|
+
// `value` must always be non-null.
|
|
173
|
+
CPPGC_DCHECK(member_value);
|
|
174
|
+
const ValueType* value = member_value->GetRawAtomic();
|
|
175
|
+
if (!value) return;
|
|
176
|
+
|
|
177
|
+
// KeyType and ValueType may refer to GarbageCollectedMixin.
|
|
178
|
+
TraceDescriptor value_desc =
|
|
179
|
+
TraceTrait<ValueType>::GetTraceDescriptor(value);
|
|
180
|
+
CPPGC_DCHECK(value_desc.base_object_payload);
|
|
181
|
+
const void* key_base_object_payload =
|
|
182
|
+
TraceTrait<KeyType>::GetTraceDescriptor(key).base_object_payload;
|
|
183
|
+
CPPGC_DCHECK(key_base_object_payload);
|
|
184
|
+
|
|
185
|
+
VisitEphemeron(key_base_object_payload, value, value_desc);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
/**
|
|
189
|
+
* Trace method for a single ephemeron. Used for tracing a raw ephemeron in
|
|
190
|
+
* which the `key` and `value` are kept separately. Note that this overload
|
|
191
|
+
* is for non-GarbageCollected `value`s that can be traced though.
|
|
192
|
+
*
|
|
193
|
+
* \param key `WeakMember` reference weakly retaining a key object.
|
|
194
|
+
* \param value Reference weakly retaining a value object. Note that
|
|
195
|
+
* `ValueType` here should not be `Member`. It is expected that
|
|
196
|
+
* `TraceTrait<ValueType>::GetTraceDescriptor(value)` returns a
|
|
197
|
+
* `TraceDescriptor` with a null base pointer but a valid trace method.
|
|
198
|
+
*/
|
|
199
|
+
template <typename KeyType, typename ValueType>
|
|
200
|
+
void TraceEphemeron(const WeakMember<KeyType>& weak_member_key,
|
|
201
|
+
const ValueType* value) {
|
|
202
|
+
static_assert(!IsGarbageCollectedOrMixinTypeV<ValueType>,
|
|
203
|
+
"garbage-collected types must use WeakMember and Member");
|
|
204
|
+
const KeyType* key = weak_member_key.GetRawAtomic();
|
|
205
|
+
if (!key) return;
|
|
206
|
+
|
|
207
|
+
// `value` must always be non-null.
|
|
208
|
+
CPPGC_DCHECK(value);
|
|
209
|
+
TraceDescriptor value_desc =
|
|
210
|
+
TraceTrait<ValueType>::GetTraceDescriptor(value);
|
|
211
|
+
// `value_desc.base_object_payload` must be null as this override is only
|
|
212
|
+
// taken for non-garbage-collected values.
|
|
213
|
+
CPPGC_DCHECK(!value_desc.base_object_payload);
|
|
214
|
+
|
|
215
|
+
// KeyType might be a GarbageCollectedMixin.
|
|
216
|
+
const void* key_base_object_payload =
|
|
217
|
+
TraceTrait<KeyType>::GetTraceDescriptor(key).base_object_payload;
|
|
218
|
+
CPPGC_DCHECK(key_base_object_payload);
|
|
219
|
+
|
|
220
|
+
VisitEphemeron(key_base_object_payload, value, value_desc);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
/**
|
|
224
|
+
* Trace method that strongifies a WeakMember.
|
|
225
|
+
*
|
|
226
|
+
* \param weak_member WeakMember reference retaining an object.
|
|
227
|
+
*/
|
|
228
|
+
template <typename T>
|
|
229
|
+
void TraceStrongly(const WeakMember<T>& weak_member) {
|
|
230
|
+
const T* value = weak_member.GetRawAtomic();
|
|
231
|
+
CPPGC_DCHECK(value != kSentinelPointer);
|
|
232
|
+
TraceImpl(value);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* Trace method for retaining containers strongly.
|
|
237
|
+
*
|
|
238
|
+
* \param object reference to the container.
|
|
239
|
+
*/
|
|
240
|
+
template <typename T>
|
|
241
|
+
void TraceStrongContainer(const T* object) {
|
|
242
|
+
TraceImpl(object);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
/**
|
|
246
|
+
* Trace method for retaining containers weakly. Note that weak containers
|
|
247
|
+
* should emit write barriers.
|
|
248
|
+
*
|
|
249
|
+
* \param object reference to the container.
|
|
250
|
+
* \param callback to be invoked.
|
|
251
|
+
* \param callback_data custom data that is passed to the callback.
|
|
252
|
+
*/
|
|
253
|
+
template <typename T>
|
|
254
|
+
void TraceWeakContainer(const T* object, WeakCallback callback,
|
|
255
|
+
const void* callback_data) {
|
|
256
|
+
if (!object) return;
|
|
257
|
+
VisitWeakContainer(object, TraceTrait<T>::GetTraceDescriptor(object),
|
|
258
|
+
TraceTrait<T>::GetWeakTraceDescriptor(object), callback,
|
|
259
|
+
callback_data);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/**
|
|
263
|
+
* Registers a slot containing a reference to an object allocated on a
|
|
264
|
+
* compactable space. Such references maybe be arbitrarily moved by the GC.
|
|
265
|
+
*
|
|
266
|
+
* \param slot location of reference to object that might be moved by the GC.
|
|
267
|
+
* The slot must contain an uncompressed pointer.
|
|
268
|
+
*/
|
|
269
|
+
template <typename T>
|
|
270
|
+
void RegisterMovableReference(const T** slot) {
|
|
271
|
+
static_assert(internal::IsAllocatedOnCompactableSpace<T>::value,
|
|
272
|
+
"Only references to objects allocated on compactable spaces "
|
|
273
|
+
"should be registered as movable slots.");
|
|
274
|
+
static_assert(!IsGarbageCollectedMixinTypeV<T>,
|
|
275
|
+
"Mixin types do not support compaction.");
|
|
276
|
+
HandleMovableReference(reinterpret_cast<const void**>(slot));
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* Registers a weak callback that is invoked during garbage collection.
|
|
281
|
+
*
|
|
282
|
+
* \param callback to be invoked.
|
|
283
|
+
* \param data custom data that is passed to the callback.
|
|
284
|
+
*/
|
|
285
|
+
virtual void RegisterWeakCallback(WeakCallback callback, const void* data) {}
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Defers tracing an object from a concurrent thread to the mutator thread.
|
|
289
|
+
* Should be called by Trace methods of types that are not safe to trace
|
|
290
|
+
* concurrently.
|
|
291
|
+
*
|
|
292
|
+
* \param parameter tells the trace callback which object was deferred.
|
|
293
|
+
* \param callback to be invoked for tracing on the mutator thread.
|
|
294
|
+
* \param deferred_size size of deferred object.
|
|
295
|
+
*
|
|
296
|
+
* \returns false if the object does not need to be deferred (i.e. currently
|
|
297
|
+
* traced on the mutator thread) and true otherwise (i.e. currently traced on
|
|
298
|
+
* a concurrent thread).
|
|
299
|
+
*/
|
|
300
|
+
virtual V8_WARN_UNUSED_RESULT bool DeferTraceToMutatorThreadIfConcurrent(
|
|
301
|
+
const void* parameter, TraceCallback callback, size_t deferred_size) {
|
|
302
|
+
// By default tracing is not deferred.
|
|
303
|
+
return false;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
protected:
|
|
307
|
+
virtual void Visit(const void* self, TraceDescriptor) {}
|
|
308
|
+
virtual void VisitWeak(const void* self, TraceDescriptor, WeakCallback,
|
|
309
|
+
const void* weak_member) {}
|
|
310
|
+
virtual void VisitEphemeron(const void* key, const void* value,
|
|
311
|
+
TraceDescriptor value_desc) {}
|
|
312
|
+
virtual void VisitWeakContainer(const void* self, TraceDescriptor strong_desc,
|
|
313
|
+
TraceDescriptor weak_desc,
|
|
314
|
+
WeakCallback callback, const void* data) {}
|
|
315
|
+
virtual void HandleMovableReference(const void**) {}
|
|
316
|
+
|
|
317
|
+
private:
|
|
318
|
+
template <typename T, void (T::*method)(const LivenessBroker&)>
|
|
319
|
+
static void WeakCallbackMethodDelegate(const LivenessBroker& info,
|
|
320
|
+
const void* self) {
|
|
321
|
+
// Callback is registered through a potential const Trace method but needs
|
|
322
|
+
// to be able to modify fields. See HandleWeak.
|
|
323
|
+
(const_cast<T*>(static_cast<const T*>(self))->*method)(info);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
template <typename PointerType>
|
|
327
|
+
static void HandleWeak(const LivenessBroker& info, const void* object) {
|
|
328
|
+
const PointerType* weak = static_cast<const PointerType*>(object);
|
|
329
|
+
auto* raw_ptr = weak->GetFromGC();
|
|
330
|
+
if (!info.IsHeapObjectAlive(raw_ptr)) {
|
|
331
|
+
weak->ClearFromGC();
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
template <typename T>
|
|
336
|
+
void TraceImpl(const T* t) {
|
|
337
|
+
static_assert(sizeof(T), "Pointee type must be fully defined.");
|
|
338
|
+
static_assert(internal::IsGarbageCollectedOrMixinType<T>::value,
|
|
339
|
+
"T must be GarbageCollected or GarbageCollectedMixin type");
|
|
340
|
+
if (!t) {
|
|
341
|
+
return;
|
|
342
|
+
}
|
|
343
|
+
Visit(t, TraceTrait<T>::GetTraceDescriptor(t));
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
#if V8_ENABLE_CHECKS
|
|
347
|
+
void CheckObjectNotInConstruction(const void* address);
|
|
348
|
+
#endif // V8_ENABLE_CHECKS
|
|
349
|
+
|
|
350
|
+
template <typename T, typename WeaknessPolicy, typename LocationPolicy,
|
|
351
|
+
typename CheckingPolicy>
|
|
352
|
+
friend class internal::BasicCrossThreadPersistent;
|
|
353
|
+
template <typename T, typename WeaknessPolicy, typename LocationPolicy,
|
|
354
|
+
typename CheckingPolicy>
|
|
355
|
+
friend class internal::BasicPersistent;
|
|
356
|
+
friend class internal::ConservativeTracingVisitor;
|
|
357
|
+
friend class internal::VisitorBase;
|
|
358
|
+
};
|
|
359
|
+
|
|
360
|
+
namespace internal {
|
|
361
|
+
|
|
362
|
+
class V8_EXPORT RootVisitor {
|
|
363
|
+
public:
|
|
364
|
+
explicit RootVisitor(Visitor::Key) {}
|
|
365
|
+
|
|
366
|
+
virtual ~RootVisitor() = default;
|
|
367
|
+
|
|
368
|
+
template <typename AnyStrongPersistentType,
|
|
369
|
+
std::enable_if_t<
|
|
370
|
+
AnyStrongPersistentType::IsStrongPersistent::value>* = nullptr>
|
|
371
|
+
void Trace(const AnyStrongPersistentType& p) {
|
|
372
|
+
using PointeeType = typename AnyStrongPersistentType::PointeeType;
|
|
373
|
+
const void* object = Extract(p);
|
|
374
|
+
if (!object) {
|
|
375
|
+
return;
|
|
376
|
+
}
|
|
377
|
+
VisitRoot(object, TraceTrait<PointeeType>::GetTraceDescriptor(object),
|
|
378
|
+
p.Location());
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
template <typename AnyWeakPersistentType,
|
|
382
|
+
std::enable_if_t<
|
|
383
|
+
!AnyWeakPersistentType::IsStrongPersistent::value>* = nullptr>
|
|
384
|
+
void Trace(const AnyWeakPersistentType& p) {
|
|
385
|
+
using PointeeType = typename AnyWeakPersistentType::PointeeType;
|
|
386
|
+
static_assert(!internal::IsAllocatedOnCompactableSpace<PointeeType>::value,
|
|
387
|
+
"Weak references to compactable objects are not allowed");
|
|
388
|
+
const void* object = Extract(p);
|
|
389
|
+
if (!object) {
|
|
390
|
+
return;
|
|
391
|
+
}
|
|
392
|
+
VisitWeakRoot(object, TraceTrait<PointeeType>::GetTraceDescriptor(object),
|
|
393
|
+
&HandleWeak<AnyWeakPersistentType>, &p, p.Location());
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
protected:
|
|
397
|
+
virtual void VisitRoot(const void*, TraceDescriptor, const SourceLocation&) {}
|
|
398
|
+
virtual void VisitWeakRoot(const void* self, TraceDescriptor, WeakCallback,
|
|
399
|
+
const void* weak_root, const SourceLocation&) {}
|
|
400
|
+
|
|
401
|
+
private:
|
|
402
|
+
template <typename AnyPersistentType>
|
|
403
|
+
static const void* Extract(AnyPersistentType& p) {
|
|
404
|
+
using PointeeType = typename AnyPersistentType::PointeeType;
|
|
405
|
+
static_assert(sizeof(PointeeType),
|
|
406
|
+
"Persistent's pointee type must be fully defined");
|
|
407
|
+
static_assert(internal::IsGarbageCollectedOrMixinType<PointeeType>::value,
|
|
408
|
+
"Persistent's pointee type must be GarbageCollected or "
|
|
409
|
+
"GarbageCollectedMixin");
|
|
410
|
+
return p.GetFromGC();
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
template <typename PointerType>
|
|
414
|
+
static void HandleWeak(const LivenessBroker& info, const void* object) {
|
|
415
|
+
const PointerType* weak = static_cast<const PointerType*>(object);
|
|
416
|
+
auto* raw_ptr = weak->GetFromGC();
|
|
417
|
+
if (!info.IsHeapObjectAlive(raw_ptr)) {
|
|
418
|
+
weak->ClearFromGC();
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
};
|
|
422
|
+
|
|
423
|
+
} // namespace internal
|
|
424
|
+
} // namespace cppgc
|
|
425
|
+
|
|
426
|
+
#endif // INCLUDE_CPPGC_VISITOR_H_
|
package/include/node/node.h
CHANGED
|
@@ -261,6 +261,10 @@ enum Flags : uint32_t {
|
|
|
261
261
|
kNoUseLargePages = 1 << 11,
|
|
262
262
|
// Skip printing output for --help, --version, --v8-options.
|
|
263
263
|
kNoPrintHelpOrVersionOutput = 1 << 12,
|
|
264
|
+
// Do not perform cppgc initialization. If set, the embedder must call
|
|
265
|
+
// cppgc::InitializeProcess() before creating a Node.js environment
|
|
266
|
+
// and call cppgc::ShutdownProcess() before process shutdown.
|
|
267
|
+
kNoInitializeCppgc = 1 << 13,
|
|
264
268
|
|
|
265
269
|
// Emulate the behavior of InitializeNodeWithArgs() when passing
|
|
266
270
|
// a flags argument to the InitializeOncePerProcess() replacement
|
|
@@ -269,7 +273,7 @@ enum Flags : uint32_t {
|
|
|
269
273
|
kNoStdioInitialization | kNoDefaultSignalHandling | kNoInitializeV8 |
|
|
270
274
|
kNoInitializeNodeV8Platform | kNoInitOpenSSL |
|
|
271
275
|
kNoParseGlobalDebugVariables | kNoAdjustResourceLimits |
|
|
272
|
-
kNoUseLargePages | kNoPrintHelpOrVersionOutput,
|
|
276
|
+
kNoUseLargePages | kNoPrintHelpOrVersionOutput | kNoInitializeCppgc,
|
|
273
277
|
};
|
|
274
278
|
} // namespace ProcessInitializationFlags
|
|
275
279
|
namespace ProcessFlags = ProcessInitializationFlags; // Legacy alias.
|
|
@@ -285,7 +289,7 @@ enum Flags : uint32_t {
|
|
|
285
289
|
|
|
286
290
|
class NODE_EXTERN InitializationResult {
|
|
287
291
|
public:
|
|
288
|
-
virtual ~InitializationResult();
|
|
292
|
+
virtual ~InitializationResult() = default;
|
|
289
293
|
|
|
290
294
|
// Returns a suggested process exit code.
|
|
291
295
|
virtual int exit_code() const = 0;
|
|
@@ -654,7 +658,7 @@ enum Flags : uint64_t {
|
|
|
654
658
|
} // namespace EnvironmentFlags
|
|
655
659
|
|
|
656
660
|
struct InspectorParentHandle {
|
|
657
|
-
virtual ~InspectorParentHandle();
|
|
661
|
+
virtual ~InspectorParentHandle() = default;
|
|
658
662
|
};
|
|
659
663
|
|
|
660
664
|
// TODO(addaleax): Maybe move per-Environment options parsing here.
|
|
@@ -1486,6 +1490,25 @@ void RegisterSignalHandler(int signal,
|
|
|
1486
1490
|
bool reset_handler = false);
|
|
1487
1491
|
#endif // _WIN32
|
|
1488
1492
|
|
|
1493
|
+
// Configure the layout of the JavaScript object with a cppgc::GarbageCollected
|
|
1494
|
+
// instance so that when the JavaScript object is reachable, the garbage
|
|
1495
|
+
// collected instance would have its Trace() method invoked per the cppgc
|
|
1496
|
+
// contract. To make it work, the process must have called
|
|
1497
|
+
// cppgc::InitializeProcess() before, which is usually the case for addons
|
|
1498
|
+
// loaded by the stand-alone Node.js executable. Embedders of Node.js can use
|
|
1499
|
+
// either need to call it themselves or make sure that
|
|
1500
|
+
// ProcessInitializationFlags::kNoInitializeCppgc is *not* set for cppgc to
|
|
1501
|
+
// work.
|
|
1502
|
+
// If the CppHeap is owned by Node.js, which is usually the case for addon,
|
|
1503
|
+
// the object must be created with at least two internal fields available,
|
|
1504
|
+
// and the first two internal fields would be configured by Node.js.
|
|
1505
|
+
// This may be superseded by a V8 API in the future, see
|
|
1506
|
+
// https://bugs.chromium.org/p/v8/issues/detail?id=13960. Until then this
|
|
1507
|
+
// serves as a helper for Node.js isolates.
|
|
1508
|
+
NODE_EXTERN void SetCppgcReference(v8::Isolate* isolate,
|
|
1509
|
+
v8::Local<v8::Object> object,
|
|
1510
|
+
void* wrappable);
|
|
1511
|
+
|
|
1489
1512
|
} // namespace node
|
|
1490
1513
|
|
|
1491
1514
|
#endif // SRC_NODE_H_
|
|
@@ -29,7 +29,7 @@ extern "C" {
|
|
|
29
29
|
*/
|
|
30
30
|
# define OPENSSL_VERSION_MAJOR 3
|
|
31
31
|
# define OPENSSL_VERSION_MINOR 0
|
|
32
|
-
# define OPENSSL_VERSION_PATCH
|
|
32
|
+
# define OPENSSL_VERSION_PATCH 10
|
|
33
33
|
|
|
34
34
|
/*
|
|
35
35
|
* Additional version information
|
|
@@ -74,21 +74,21 @@ extern "C" {
|
|
|
74
74
|
* longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and
|
|
75
75
|
* OPENSSL_VERSION_BUILD_METADATA_STR appended.
|
|
76
76
|
*/
|
|
77
|
-
# define OPENSSL_VERSION_STR "3.0.
|
|
78
|
-
# define OPENSSL_FULL_VERSION_STR "3.0.
|
|
77
|
+
# define OPENSSL_VERSION_STR "3.0.10"
|
|
78
|
+
# define OPENSSL_FULL_VERSION_STR "3.0.10+quic"
|
|
79
79
|
|
|
80
80
|
/*
|
|
81
81
|
* SECTION 3: ADDITIONAL METADATA
|
|
82
82
|
*
|
|
83
83
|
* These strings are defined separately to allow them to be parsable.
|
|
84
84
|
*/
|
|
85
|
-
# define OPENSSL_RELEASE_DATE "
|
|
85
|
+
# define OPENSSL_RELEASE_DATE "1 Aug 2023"
|
|
86
86
|
|
|
87
87
|
/*
|
|
88
88
|
* SECTION 4: BACKWARD COMPATIBILITY
|
|
89
89
|
*/
|
|
90
90
|
|
|
91
|
-
# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.
|
|
91
|
+
# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023"
|
|
92
92
|
|
|
93
93
|
/* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */
|
|
94
94
|
# ifdef OPENSSL_VERSION_PRE_RELEASE
|
|
@@ -29,7 +29,7 @@ extern "C" {
|
|
|
29
29
|
*/
|
|
30
30
|
# define OPENSSL_VERSION_MAJOR 3
|
|
31
31
|
# define OPENSSL_VERSION_MINOR 0
|
|
32
|
-
# define OPENSSL_VERSION_PATCH
|
|
32
|
+
# define OPENSSL_VERSION_PATCH 10
|
|
33
33
|
|
|
34
34
|
/*
|
|
35
35
|
* Additional version information
|
|
@@ -74,21 +74,21 @@ extern "C" {
|
|
|
74
74
|
* longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and
|
|
75
75
|
* OPENSSL_VERSION_BUILD_METADATA_STR appended.
|
|
76
76
|
*/
|
|
77
|
-
# define OPENSSL_VERSION_STR "3.0.
|
|
78
|
-
# define OPENSSL_FULL_VERSION_STR "3.0.
|
|
77
|
+
# define OPENSSL_VERSION_STR "3.0.10"
|
|
78
|
+
# define OPENSSL_FULL_VERSION_STR "3.0.10+quic"
|
|
79
79
|
|
|
80
80
|
/*
|
|
81
81
|
* SECTION 3: ADDITIONAL METADATA
|
|
82
82
|
*
|
|
83
83
|
* These strings are defined separately to allow them to be parsable.
|
|
84
84
|
*/
|
|
85
|
-
# define OPENSSL_RELEASE_DATE "
|
|
85
|
+
# define OPENSSL_RELEASE_DATE "1 Aug 2023"
|
|
86
86
|
|
|
87
87
|
/*
|
|
88
88
|
* SECTION 4: BACKWARD COMPATIBILITY
|
|
89
89
|
*/
|
|
90
90
|
|
|
91
|
-
# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.
|
|
91
|
+
# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023"
|
|
92
92
|
|
|
93
93
|
/* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */
|
|
94
94
|
# ifdef OPENSSL_VERSION_PRE_RELEASE
|
|
@@ -29,7 +29,7 @@ extern "C" {
|
|
|
29
29
|
*/
|
|
30
30
|
# define OPENSSL_VERSION_MAJOR 3
|
|
31
31
|
# define OPENSSL_VERSION_MINOR 0
|
|
32
|
-
# define OPENSSL_VERSION_PATCH
|
|
32
|
+
# define OPENSSL_VERSION_PATCH 10
|
|
33
33
|
|
|
34
34
|
/*
|
|
35
35
|
* Additional version information
|
|
@@ -74,21 +74,21 @@ extern "C" {
|
|
|
74
74
|
* longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and
|
|
75
75
|
* OPENSSL_VERSION_BUILD_METADATA_STR appended.
|
|
76
76
|
*/
|
|
77
|
-
# define OPENSSL_VERSION_STR "3.0.
|
|
78
|
-
# define OPENSSL_FULL_VERSION_STR "3.0.
|
|
77
|
+
# define OPENSSL_VERSION_STR "3.0.10"
|
|
78
|
+
# define OPENSSL_FULL_VERSION_STR "3.0.10+quic"
|
|
79
79
|
|
|
80
80
|
/*
|
|
81
81
|
* SECTION 3: ADDITIONAL METADATA
|
|
82
82
|
*
|
|
83
83
|
* These strings are defined separately to allow them to be parsable.
|
|
84
84
|
*/
|
|
85
|
-
# define OPENSSL_RELEASE_DATE "
|
|
85
|
+
# define OPENSSL_RELEASE_DATE "1 Aug 2023"
|
|
86
86
|
|
|
87
87
|
/*
|
|
88
88
|
* SECTION 4: BACKWARD COMPATIBILITY
|
|
89
89
|
*/
|
|
90
90
|
|
|
91
|
-
# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.
|
|
91
|
+
# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023"
|
|
92
92
|
|
|
93
93
|
/* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */
|
|
94
94
|
# ifdef OPENSSL_VERSION_PRE_RELEASE
|
|
@@ -29,7 +29,7 @@ extern "C" {
|
|
|
29
29
|
*/
|
|
30
30
|
# define OPENSSL_VERSION_MAJOR 3
|
|
31
31
|
# define OPENSSL_VERSION_MINOR 0
|
|
32
|
-
# define OPENSSL_VERSION_PATCH
|
|
32
|
+
# define OPENSSL_VERSION_PATCH 10
|
|
33
33
|
|
|
34
34
|
/*
|
|
35
35
|
* Additional version information
|
|
@@ -74,21 +74,21 @@ extern "C" {
|
|
|
74
74
|
* longer variant with OPENSSL_VERSION_PRE_RELEASE_STR and
|
|
75
75
|
* OPENSSL_VERSION_BUILD_METADATA_STR appended.
|
|
76
76
|
*/
|
|
77
|
-
# define OPENSSL_VERSION_STR "3.0.
|
|
78
|
-
# define OPENSSL_FULL_VERSION_STR "3.0.
|
|
77
|
+
# define OPENSSL_VERSION_STR "3.0.10"
|
|
78
|
+
# define OPENSSL_FULL_VERSION_STR "3.0.10+quic"
|
|
79
79
|
|
|
80
80
|
/*
|
|
81
81
|
* SECTION 3: ADDITIONAL METADATA
|
|
82
82
|
*
|
|
83
83
|
* These strings are defined separately to allow them to be parsable.
|
|
84
84
|
*/
|
|
85
|
-
# define OPENSSL_RELEASE_DATE "
|
|
85
|
+
# define OPENSSL_RELEASE_DATE "1 Aug 2023"
|
|
86
86
|
|
|
87
87
|
/*
|
|
88
88
|
* SECTION 4: BACKWARD COMPATIBILITY
|
|
89
89
|
*/
|
|
90
90
|
|
|
91
|
-
# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.
|
|
91
|
+
# define OPENSSL_VERSION_TEXT "OpenSSL 3.0.10+quic 1 Aug 2023"
|
|
92
92
|
|
|
93
93
|
/* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */
|
|
94
94
|
# ifdef OPENSSL_VERSION_PRE_RELEASE
|