소스 검색

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
2개의 변경된 파일3개의 추가작업 그리고 4개의 파일을 삭제
  1. 1 1
      Userland/Libraries/LibWeb/Bindings/HostDefined.cpp
  2. 2 3
      Userland/Libraries/LibWeb/Bindings/HostDefined.h

+ 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);
     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 {
 
 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)
         , intrinsics(intrinsics)
     {
@@ -22,8 +22,7 @@ struct HostDefined : public JS::Realm::HostDefined {
     virtual ~HostDefined() override = default;
     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;
 };