diff options
author | Oriol Brufau <obrufau@igalia.com> | 2025-03-24 13:33:44 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-24 12:33:44 +0000 |
commit | c09eed759b9533850c51ad0037fe68fab85ba6c5 (patch) | |
tree | 660dc2a9dce65c2f0d6ec7fe718d2af4be8c96c9 /components/layout_2020/lib.rs | |
parent | efd6e8639369308715e35532b5f29e3bc399f1ce (diff) | |
download | servo-c09eed759b9533850c51ad0037fe68fab85ba6c5.tar.gz servo-c09eed759b9533850c51ad0037fe68fab85ba6c5.zip |
layout: Cache `IndependentNonReplacedContents::layout()` (#36082)
This replaces `IndependentLayout` with `CacheableLayoutResult` and
stores it in `LayoutBoxBase` so it can be reused when we need to lay out
a box multiple times.
This is a generalization of the caching that we had for flexbox, which
is now removed in favor of the new one.
With this, the number of runs per second in the Chromium perf test
`flexbox-deeply-nested-column-flow.html` are multiplied by 3.
Signed-off-by: Oriol Brufau <obrufau@igalia.com>
Signed-off-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Diffstat (limited to 'components/layout_2020/lib.rs')
-rw-r--r-- | components/layout_2020/lib.rs | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/components/layout_2020/lib.rs b/components/layout_2020/lib.rs index 780d670c541..640f9ff938b 100644 --- a/components/layout_2020/lib.rs +++ b/components/layout_2020/lib.rs @@ -112,7 +112,7 @@ impl<'a> From<&'_ DefiniteContainingBlock<'a>> for IndefiniteContainingBlock { } } -#[derive(Debug)] +#[derive(Clone, Debug)] pub(crate) struct ContainingBlockSize { inline: Au, block: SizeConstraint, |