Преглед изворни кода

LibWeb: Clean up assumptions in Bindings::HostDefined

We don't have a 'root execution environment' anymore (thankfully), so
we can make sure that the ESO the HostDefined object holds onto is a
NonnullGCPtr.
Andrew Kaster пре 1 година
родитељ
комит
4fcff01ef3

+ 1 - 1
Userland/Libraries/LibWeb/Bindings/HostDefined.cpp

@@ -16,7 +16,7 @@ void HostDefined::visit_edges(JS::Cell::Visitor& visitor)
 {
 {
     JS::Realm::HostDefined::visit_edges(visitor);
     JS::Realm::HostDefined::visit_edges(visitor);
     visitor.visit(environment_settings_object);
     visitor.visit(environment_settings_object);
-    visitor.visit(*intrinsics);
+    visitor.visit(intrinsics);
 }
 }
 
 
 }
 }

+ 2 - 3
Userland/Libraries/LibWeb/Bindings/HostDefined.h

@@ -14,7 +14,7 @@
 namespace Web::Bindings {
 namespace Web::Bindings {
 
 
 struct HostDefined : public JS::Realm::HostDefined {
 struct HostDefined : public JS::Realm::HostDefined {
-    HostDefined(JS::GCPtr<HTML::EnvironmentSettingsObject> eso, JS::NonnullGCPtr<Intrinsics> intrinsics)
+    HostDefined(JS::NonnullGCPtr<HTML::EnvironmentSettingsObject> eso, JS::NonnullGCPtr<Intrinsics> intrinsics)
         : environment_settings_object(eso)
         : environment_settings_object(eso)
         , intrinsics(intrinsics)
         , intrinsics(intrinsics)
     {
     {
@@ -22,8 +22,7 @@ struct HostDefined : public JS::Realm::HostDefined {
     virtual ~HostDefined() override = default;
     virtual ~HostDefined() override = default;
     virtual void visit_edges(JS::Cell::Visitor& visitor) override;
     virtual void visit_edges(JS::Cell::Visitor& visitor) override;
 
 
-    // NOTE: Only the root execution environment in the main thread VM ever sets this to nullptr
-    JS::GCPtr<HTML::EnvironmentSettingsObject> environment_settings_object;
+    JS::NonnullGCPtr<HTML::EnvironmentSettingsObject> environment_settings_object;
     JS::NonnullGCPtr<Intrinsics> intrinsics;
     JS::NonnullGCPtr<Intrinsics> intrinsics;
 };
 };