cppgc: Keep |marking_done_| true upon initialization

Since the variable was initialized as |false|, the very first minor gc
triggered a check in TraceEpilogue().

Bug: v8:13475
Change-Id: I8ec574583ec4aa0b97cc1750f8ceea866fbdef7b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4061892
Reviewed-by: Omer Katz <omerkatz@chromium.org>
Auto-Submit: Anton Bikineev <bikineev@chromium.org>
Commit-Queue: Anton Bikineev <bikineev@chromium.org>
Cr-Commit-Position: refs/heads/main@{#84529}
This commit is contained in:
Anton Bikineev 2022-11-29 11:09:04 +01:00 committed by V8 LUCI CQ
parent 8c47ca8dc5
commit c74c73be6f
2 changed files with 2 additions and 1 deletions

View File

@ -691,6 +691,7 @@ MarkingWorklists::Local* GetV8MarkingWorklists(
} // namespace
void CppHeap::StartTracing() {
CHECK(marking_done_);
if (!TracingInitialized()) return;
if (isolate_) {
// Reuse the same local worklist for the mutator marking state which results

View File

@ -200,7 +200,7 @@ class V8_EXPORT_PRIVATE CppHeap final
bool TracingInitialized() const { return collection_type_.has_value(); }
Isolate* isolate_ = nullptr;
bool marking_done_ = false;
bool marking_done_ = true;
// |collection_type_| is initialized when marking is in progress.
base::Optional<CollectionType> collection_type_;
GarbageCollectionFlags current_gc_flags_;