Commit 11f1e12b authored by Michael Lippautz's avatar Michael Lippautz Committed by Commit Bot

cppgc: Remove ephemeron filter

Previously, ephemerons without a base_object_payload have been
filtered.  base_object_payload is currently used to differentiate
between GarbageCollected and just traceable objects, so we need to
pass on the empty descriptor.

Bug: chromium:1056170
Change-Id: I9cba53295779ec74dce2822b7bf83f477bc3241f
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2700039Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72820}
parent d0136a5c
...@@ -169,7 +169,10 @@ class V8_EXPORT Visitor { ...@@ -169,7 +169,10 @@ class V8_EXPORT Visitor {
const K* k = key.GetRawAtomic(); const K* k = key.GetRawAtomic();
if (!k) return; if (!k) return;
TraceDescriptor value_desc = TraceTrait<V>::GetTraceDescriptor(value); TraceDescriptor value_desc = TraceTrait<V>::GetTraceDescriptor(value);
if (!value_desc.base_object_payload) return; // `value` must always be non-null. `value_desc.base_object_payload` may be
// null in the case that value is not a garbage-collected object but only
// traceable.
CPPGC_DCHECK(value);
VisitEphemeron(key, value, value_desc); VisitEphemeron(key, value, value_desc);
} }
......
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