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

LibWeb: Add fast_is<Layout::InitialContainingBlockBox>

This is used by Layout::Node::containing_block() which is fairly hot.
Andreas Kling пре 3 година
родитељ
комит
a401a0f8fe

+ 5 - 0
Userland/Libraries/LibWeb/Layout/InitialContainingBlockBox.h

@@ -31,7 +31,12 @@ public:
     void recompute_selection_states();
 
 private:
+    virtual bool is_initial_containing_block_box() const override { return true; }
+
     LayoutRange m_selection;
 };
 
+template<>
+inline bool Node::fast_is<InitialContainingBlockBox>() const { return is_initial_containing_block_box(); }
+
 }

+ 1 - 0
Userland/Libraries/LibWeb/Layout/Node.h

@@ -100,6 +100,7 @@ public:
     virtual bool is_box() const { return false; }
     virtual bool is_block_box() const { return false; }
     virtual bool is_text_node() const { return false; }
+    virtual bool is_initial_containing_block_box() const { return false; }
 
     template<typename T>
     bool fast_is() const = delete;