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:
parent
881e7fcee1
commit
b66033720a
2 changed files with 9 additions and 6 deletions
|
@ -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;
|
||||
|
||||
|
|
|
@ -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 };
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue