1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-14 09:34:59 +00:00

LibWeb: Let Length::to_px(Layout::Node) be inline for absolute lengths

This commit is contained in:
Andreas Kling 2024-03-02 11:17:06 +01:00
parent 881e7fcee1
commit b66033720a
2 changed files with 9 additions and 6 deletions

View file

@ -148,17 +148,13 @@ CSSPixels Length::to_px(ResolutionContext const& context) const
return to_px(context.viewport_rect, context.font_metrics, context.root_font_metrics);
}
CSSPixels Length::to_px(Layout::Node const& layout_node) const
CSSPixels Length::to_px_slow_case(Layout::Node const& layout_node) const
{
if (is_auto()) {
// FIXME: We really, really shouldn't end up here, but we do, and so frequently that
// adding a dbgln() here outputs a couple hundred lines loading `welcome.html`.
return 0;
}
if (is_absolute())
return absolute_length_to_px();
if (!layout_node.document().browsing_context())
return 0;

View file

@ -166,7 +166,12 @@ public:
[[nodiscard]] CSSPixels to_px(ResolutionContext const&) const;
CSSPixels to_px(Layout::Node const&) const;
[[nodiscard]] ALWAYS_INLINE CSSPixels to_px(Layout::Node const& node) const
{
if (is_absolute())
return absolute_length_to_px();
return to_px_slow_case(node);
}
ALWAYS_INLINE CSSPixels to_px(CSSPixelRect const& viewport_rect, FontMetrics const& font_metrics, FontMetrics const& root_font_metrics) const
{
@ -220,6 +225,8 @@ public:
private:
char const* unit_name() const;
[[nodiscard]] CSSPixels to_px_slow_case(Layout::Node const&) const;
Type m_type;
double m_value { 0 };
};