mirror of
https://github.com/nodejs/node.git
synced 2024-11-27 22:16:50 +01:00
deps: V8: cherry-pick 92a7385171bb
Original commit message:
[heap] Fix 32bit msvc builds
Size of ActiveSystemPages is 8 bytes even on 32bit builds, thus
forcing 8 bytes alignment for MemoryChunk.
Change-Id: I5ca1e18329d6e68a8b6811c3c27cb224c765cb63
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3966953
Commit-Queue: Omer Katz <omerkatz@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#83845}
Refs: 92a7385171
PR-URL: https://github.com/nodejs/node/pull/45230
Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
This commit is contained in:
parent
4db47f28f0
commit
219bc4bb86
@ -36,7 +36,7 @@
|
||||
|
||||
# Reset this number to 0 on major V8 upgrades.
|
||||
# Increment by one for each non-official patch applied to deps/v8.
|
||||
'v8_embedder_string': '-node.4',
|
||||
'v8_embedder_string': '-node.5',
|
||||
|
||||
##### V8 defaults for Node.js #####
|
||||
|
||||
|
17
deps/v8/src/heap/memory-chunk-layout.h
vendored
17
deps/v8/src/heap/memory-chunk-layout.h
vendored
@ -37,8 +37,13 @@ using ActiveSystemPages = ::heap::base::ActiveSystemPages;
|
||||
|
||||
class V8_EXPORT_PRIVATE MemoryChunkLayout {
|
||||
public:
|
||||
static const int kNumSets = NUMBER_OF_REMEMBERED_SET_TYPES;
|
||||
static const int kNumTypes = ExternalBackingStoreType::kNumTypes;
|
||||
static constexpr int kNumSets = NUMBER_OF_REMEMBERED_SET_TYPES;
|
||||
static constexpr int kNumTypes = ExternalBackingStoreType::kNumTypes;
|
||||
#if V8_CC_MSVC && V8_TARGET_ARCH_IA32
|
||||
static constexpr int kMemoryChunkAlignment = 8;
|
||||
#else
|
||||
static constexpr int kMemoryChunkAlignment = sizeof(size_t);
|
||||
#endif // V8_CC_MSVC && V8_TARGET_ARCH_IA32
|
||||
#define FIELD(Type, Name) \
|
||||
k##Name##Offset, k##Name##End = k##Name##Offset + sizeof(Type) - 1
|
||||
enum Header {
|
||||
@ -74,11 +79,17 @@ class V8_EXPORT_PRIVATE MemoryChunkLayout {
|
||||
#endif // V8_ENABLE_INNER_POINTER_RESOLUTION_OSB
|
||||
FIELD(size_t, WasUsedForAllocation),
|
||||
kMarkingBitmapOffset,
|
||||
kMemoryChunkHeaderSize = kMarkingBitmapOffset,
|
||||
kMemoryChunkHeaderSize =
|
||||
kMarkingBitmapOffset +
|
||||
((kMarkingBitmapOffset % kMemoryChunkAlignment) == 0
|
||||
? 0
|
||||
: kMemoryChunkAlignment -
|
||||
(kMarkingBitmapOffset % kMemoryChunkAlignment)),
|
||||
kMemoryChunkHeaderStart = kSlotSetOffset,
|
||||
kBasicMemoryChunkHeaderSize = kMemoryChunkHeaderStart,
|
||||
kBasicMemoryChunkHeaderStart = 0,
|
||||
};
|
||||
#undef FIELD
|
||||
static size_t CodePageGuardStartOffset();
|
||||
static size_t CodePageGuardSize();
|
||||
static intptr_t ObjectStartOffsetInCodePage();
|
||||
|
11
deps/v8/src/heap/memory-chunk.cc
vendored
11
deps/v8/src/heap/memory-chunk.cc
vendored
@ -496,6 +496,17 @@ void MemoryChunk::ValidateOffsets(MemoryChunk* chunk) {
|
||||
DCHECK_EQ(reinterpret_cast<Address>(&chunk->possibly_empty_buckets_) -
|
||||
chunk->address(),
|
||||
MemoryChunkLayout::kPossiblyEmptyBucketsOffset);
|
||||
DCHECK_EQ(reinterpret_cast<Address>(&chunk->active_system_pages_) -
|
||||
chunk->address(),
|
||||
MemoryChunkLayout::kActiveSystemPagesOffset);
|
||||
#ifdef V8_ENABLE_INNER_POINTER_RESOLUTION_OSB
|
||||
DCHECK_EQ(reinterpret_cast<Address>(&chunk->object_start_bitmap_) -
|
||||
chunk->address(),
|
||||
MemoryChunkLayout::kObjectStartBitmapOffset);
|
||||
#endif // V8_ENABLE_INNER_POINTER_RESOLUTION_OSB
|
||||
DCHECK_EQ(reinterpret_cast<Address>(&chunk->was_used_for_allocation_) -
|
||||
chunk->address(),
|
||||
MemoryChunkLayout::kWasUsedForAllocationOffset);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user