Commit 45059dc2 authored by Dominik Inführ's avatar Dominik Inführ Committed by V8 LUCI CQ

[heap] Fix broken DCHECK in FlushBytecodeFromSFI

The String might be in the shared heap which is not collected during
client GCs.

Bug: v8:11708
Change-Id: I0958c46996a2aeba3a046263350617e8d177deca
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3805883Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
Cr-Commit-Position: refs/heads/main@{#82179}
parent 79e3fc0d
...@@ -3014,7 +3014,8 @@ void MarkCompactCollector::FlushBytecodeFromSFI( ...@@ -3014,7 +3014,8 @@ void MarkCompactCollector::FlushBytecodeFromSFI(
// Mark the uncompiled data as black, and ensure all fields have already been // Mark the uncompiled data as black, and ensure all fields have already been
// marked. // marked.
DCHECK(marking_state()->IsBlackOrGrey(inferred_name)); DCHECK(marking_state()->IsBlackOrGrey(inferred_name) ||
(!is_shared_heap() && inferred_name.InSharedWritableHeap()));
marking_state()->WhiteToBlack(uncompiled_data); marking_state()->WhiteToBlack(uncompiled_data);
// Use the raw function data setter to avoid validity checks, since we're // Use the raw function data setter to avoid validity checks, since we're
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment