mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
layout: Clean up inline layout data types a bit (#34563)
- Remove the `LayoutBox::InlineBox` variant that was only used for inline level boxes. Now they are stored in `LayoutBox::InlineLevel` along with other kinds of out-of-flow and atomic inline items. - Reduce the size of `InlineItem` by 260 bytes per item by using atomic indirection / pointers. This adds a bit of overhead to access items in exchange for a lot of memory saved. Signed-off-by: Martin Robinson <mrobinson@igalia.com> Co-authored-by: Oriol Brufau <obrufau@igalia.com>
This commit is contained in:
parent
f1b8d49e77
commit
9d11d584f6
6 changed files with 35 additions and 35 deletions
|
@ -22,7 +22,6 @@ use crate::cell::ArcRefCell;
|
|||
use crate::context::LayoutContext;
|
||||
use crate::dom_traversal::WhichPseudoElement;
|
||||
use crate::flexbox::FlexLevelBox;
|
||||
use crate::flow::inline::inline_box::InlineBox;
|
||||
use crate::flow::inline::InlineItem;
|
||||
use crate::flow::BlockLevelBox;
|
||||
use crate::geom::PhysicalSize;
|
||||
|
@ -41,8 +40,6 @@ pub struct InnerDOMLayoutData {
|
|||
pub(super) enum LayoutBox {
|
||||
DisplayContents,
|
||||
BlockLevel(ArcRefCell<BlockLevelBox>),
|
||||
#[allow(dead_code)]
|
||||
InlineBox(ArcRefCell<InlineBox>),
|
||||
InlineLevel(ArcRefCell<InlineItem>),
|
||||
FlexLevel(ArcRefCell<FlexLevelBox>),
|
||||
TaffyItemBox(ArcRefCell<TaffyItemBox>),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue