소스 검색

LibWeb: Add fast_is<Layout::InitialContainingBlockBox>

This is used by Layout::Node::containing_block() which is fairly hot.
Andreas Kling 4 년 전
부모
커밋
a401a0f8fe
2개의 변경된 파일6개의 추가작업 그리고 0개의 파일을 삭제
  1. 5 0
      Userland/Libraries/LibWeb/Layout/InitialContainingBlockBox.h
  2. 1 0
      Userland/Libraries/LibWeb/Layout/Node.h

+ 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;