LibJSGCVerifier: Assume MarkedVector wrapped members are valid

These are effectively heap roots, so they don't need to be visited.
This commit is contained in:
Idan Horowitz 2024-04-05 22:12:30 +03:00 committed by Andreas Kling
parent b018114bee
commit 9f31a83c2e

View file

@ -86,8 +86,8 @@ std::vector<clang::QualType> get_all_qualified_types(clang::QualType const& type
if (auto const* template_specialization = type->getAs<clang::TemplateSpecializationType>()) {
auto specialization_name = template_specialization->getTemplateName().getAsTemplateDecl()->getQualifiedNameAsString();
// Do not unwrap GCPtr/NonnullGCPtr
if (specialization_name == "JS::GCPtr" || specialization_name == "JS::NonnullGCPtr" || specialization_name == "JS::RawGCPtr") {
// Do not unwrap GCPtr/NonnullGCPtr/MarkedVector
if (specialization_name == "JS::GCPtr" || specialization_name == "JS::NonnullGCPtr" || specialization_name == "JS::RawGCPtr" || specialization_name == "JS::MarkedVector") {
qualified_types.push_back(type);
} else {
auto const template_arguments = template_specialization->template_arguments();