[heap] Make shared heap allocations in GC more robust

Bug: v8:13267, v8:13591
Change-Id: I8797a871479f13d1d45a6c9e7d9063a661a3ff8f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4106368
Auto-Submit: Dominik Inführ <dinfuehr@chromium.org>
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84843}
This commit is contained in:
Dominik Inführ 2022-12-14 14:50:47 +01:00 committed by V8 LUCI CQ
parent e7c12c00d8
commit 4677d3ba1b

View File

@ -2553,8 +2553,8 @@ void Heap::MarkCompact() {
// Disable soft allocation limits in the shared heap, if one exists, as
// promotions into the shared heap should always succeed.
OptionalAlwaysAllocateScope always_allocate_shared_heap(
isolate()->shared_isolate() ? isolate()->shared_isolate()->heap()
: nullptr);
isolate()->has_shared_heap() ? isolate()->shared_heap_isolate()->heap()
: nullptr);
UpdateOldGenerationAllocationCounter();
uint64_t size_of_objects_before_gc = SizeOfObjects();
@ -2597,8 +2597,8 @@ void Heap::MinorMarkCompact() {
// Disable soft allocation limits in the shared heap, if one exists, as
// promotions into the shared heap should always succeed.
OptionalAlwaysAllocateScope always_allocate_shared_heap(
isolate()->shared_isolate() ? isolate()->shared_isolate()->heap()
: nullptr);
isolate()->has_shared_heap() ? isolate()->shared_heap_isolate()->heap()
: nullptr);
minor_mark_compact_collector_->Prepare();
minor_mark_compact_collector_->CollectGarbage();
@ -2651,8 +2651,8 @@ void Heap::Scavenge() {
// Disable soft allocation limits in the shared heap, if one exists, as
// promotions into the shared heap should always succeed.
OptionalAlwaysAllocateScope always_allocate_shared_heap(
isolate()->shared_isolate() ? isolate()->shared_isolate()->heap()
: nullptr);
isolate()->has_shared_heap() ? isolate()->shared_heap_isolate()->heap()
: nullptr);
// Bump-pointer allocations done during scavenge are not real allocations.
// Pause the inline allocation steps.