From aa19c4a34028532a5e3f8453e3368fc0888dca23 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 23 Jan 2023 17:24:34 +0100 Subject: [PATCH] LibWeb: Add Layout::Node::is_table() and make is() fast --- Userland/Libraries/LibWeb/Layout/Node.h | 1 + Userland/Libraries/LibWeb/Layout/TableBox.h | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/Userland/Libraries/LibWeb/Layout/Node.h b/Userland/Libraries/LibWeb/Layout/Node.h index cfaaa97c50..98ee636ad1 100644 --- a/Userland/Libraries/LibWeb/Layout/Node.h +++ b/Userland/Libraries/LibWeb/Layout/Node.h @@ -92,6 +92,7 @@ public: virtual bool is_replaced_box() const { return false; } virtual bool is_list_item_marker_box() const { return false; } virtual bool is_table_wrapper() const { return false; } + virtual bool is_table() const { return false; } template bool fast_is() const = delete; diff --git a/Userland/Libraries/LibWeb/Layout/TableBox.h b/Userland/Libraries/LibWeb/Layout/TableBox.h index caa33b5ce3..2fc6c12dd1 100644 --- a/Userland/Libraries/LibWeb/Layout/TableBox.h +++ b/Userland/Libraries/LibWeb/Layout/TableBox.h @@ -24,6 +24,12 @@ public: return CSS::Display::from_short(CSS::Display::Short::InlineTable); return CSS::Display::from_short(CSS::Display::Short::Table); } + +private: + virtual bool is_table() const override { return true; } }; +template<> +inline bool Node::fast_is() const { return is_table(); } + }