I'm trying to unify locally. Let me share if I find some concerns or questions.
- Currently, we have no blink::Visitor::Trace(const TraceWrapperV8Reference<V8Type>&). Hence the current call graph is not a subgraph. We'll need to work for it again.
- Don't we need to take care TraceWrappersWithManualBarrier()? I mean, can we simply replace it with visitor->Trace()?
- There seems to be some untracked Trace() and TraceWrappers() in test code.
e.g. bindings/core/v8/script_wrappable_marking_visitor_test.cc
> - Currently, we have no blink::Visitor::Trace(const TraceWrapperV8Reference<V8Type>&). Hence the current call graph is not a subgraph. We'll need to work for it again.
Yes. Let's chat with Michael and figure out how to do this.
> - Don't we need to take care TraceWrappersWithManualBarrier()? I mean, can we simply replace it with visitor->Trace()?
Right. We'll need to introduce TraceAsTraceWrappersWithManualWriteBarrier(). Otherwise the GC cannot understand that it should visit the raw pointer as a TraceWrapperMember. Let's chat with Michael next week.
> - There seems to be some untracked Trace() and TraceWrappers() in test code.
Would you mind fixing it?
>> - Currently, we have no blink::Visitor::Trace(const TraceWrapperV8Reference<V8Type>&). Hence the current call graph is not a subgraph. We'll need to work for it again.
>
> Yes. Let's chat with Michael and figure out how to do this.
We can define few new blink::Visitor::Trace() as empty methods to cover not-yet-Traced types. Then we can make TW graph a subgraph of Trace graph.
>> - Don't we need to take care TraceWrappersWithManualBarrier()? I mean, can we simply replace it with visitor->Trace()?
>
> Right. We'll need to introduce TraceAsTraceWrappersWithManualWriteBarrier(). Otherwise the GC cannot understand that it should visit the raw pointer as a TraceWrapperMember. Let's chat with Michael next week.
I think Visitor::TraceWithBarrier() can trace as usual Trace(), and SWVisitor::TraceWithBarrier() overloads it as it works.
>> - There seems to be some untracked Trace() and TraceWrappers() in test code.
>
> Would you mind fixing it?
Yes, will do. :)
> - There seems to be some untracked Trace() and TraceWrappers() in test code.
HandleContainer and Base classes in bindings/core/v8/script_wrappable_marking_visitor_test.cc seem to be the only case, but they need Visitor::Trace(TWMemberV8Reference).
Comment 1 by mlippautz@chromium.org
, May 10 2018