Переглянути джерело

LibWeb: Add PercentageOr<Length>::to_px() fast path for absolute lengths

We can avoid round-tripping through a temporary Length in the simple
case here.
Andreas Kling 1 рік тому
батько
коміт
d8e8293b7e
1 змінених файлів з 6 додано та 0 видалено
  1. 6 0
      Userland/Libraries/LibWeb/CSS/PercentageOr.h

+ 6 - 0
Userland/Libraries/LibWeb/CSS/PercentageOr.h

@@ -97,6 +97,12 @@ public:
 
 
     CSSPixels to_px(Layout::Node const& layout_node, CSSPixels reference_value) const
     CSSPixels to_px(Layout::Node const& layout_node, CSSPixels reference_value) const
     {
     {
+        if constexpr (IsSame<T, Length>) {
+            if (auto const* length = m_value.template get_pointer<Length>()) {
+                if (length->is_absolute())
+                    return length->absolute_length_to_px();
+            }
+        }
         return resolved(layout_node, reference_value).to_px(layout_node);
         return resolved(layout_node, reference_value).to_px(layout_node);
     }
     }