Skip to content

Commit

Permalink
build(deps): bump bitflags from 1.3.2 to 2.3.1
Browse files Browse the repository at this point in the history
  • Loading branch information
mrobinson committed Sep 1, 2023
1 parent 6eb3e16 commit 6a6609d
Show file tree
Hide file tree
Showing 18 changed files with 110 additions and 113 deletions.
16 changes: 8 additions & 8 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Expand Up @@ -17,7 +17,7 @@ atomic_refcell = "0.1.11"
arrayvec = "0.7"
backtrace = "0.3"
base64 = "0.21.3"
bitflags = "1.0"
bitflags = "2.3"
byteorder = "1.0"
encoding_rs = "0.8"
euclid = "0.22"
Expand Down
11 changes: 6 additions & 5 deletions components/gfx/font.rs
Expand Up @@ -177,16 +177,17 @@ impl Font {
}

bitflags! {
#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq)]
pub struct ShapingFlags: u8 {
#[doc = "Set if the text is entirely whitespace."]
/// Set if the text is entirely whitespace.
const IS_WHITESPACE_SHAPING_FLAG = 0x01;
#[doc = "Set if we are to ignore ligatures."]
/// Set if we are to ignore ligatures.
const IGNORE_LIGATURES_SHAPING_FLAG = 0x02;
#[doc = "Set if we are to disable kerning."]
/// Set if we are to disable kerning.
const DISABLE_KERNING_SHAPING_FLAG = 0x04;
#[doc = "Text direction is right-to-left."]
/// Text direction is right-to-left.
const RTL_FLAG = 0x08;
#[doc = "Set if word-break is set to keep-all."]
/// Set if word-break is set to keep-all.
const KEEP_ALL_FLAG = 0x10;
}
}
Expand Down
7 changes: 3 additions & 4 deletions components/gfx_traits/lib.rs
Expand Up @@ -57,10 +57,9 @@ impl StackingContextId {
}

int_range_index! {
#[derive(Deserialize, Serialize)]
#[doc = "An index that refers to a byte offset in a text run. This could \
point to the middle of a glyph."]
#[derive(MallocSizeOf)]
#[derive(Deserialize, MallocSizeOf, Serialize)]
/// An index that refers to a byte offset in a text run. This could
/// the middle of a glyph.
struct ByteIndex(isize)
}

Expand Down
11 changes: 5 additions & 6 deletions components/layout/block.rs
Expand Up @@ -603,10 +603,11 @@ pub struct BlockFlow {
}

bitflags! {
#[derive(Clone, Copy)]
struct BlockFlowFlags: u8 {
#[doc = "If this is set, then this block flow is the root flow."]
/// If this is set, then this block flow is the root flow.
const IS_ROOT = 0b0000_0001;
#[doc = "If this is set, then this block flow has overflow and it will scroll."]
/// If this is set, then this block flow has overflow and it will scroll.
const HAS_SCROLLING_OVERFLOW = 0b0000_0010;
}
}
Expand Down Expand Up @@ -1663,9 +1664,7 @@ impl BlockFlow {
//
// TODO(#2265, pcwalton): Do this in the cascade instead.
let containing_block_text_align = self.fragment.style().get_inherited_text().text_align;
kid.mut_base()
.flags
.set_text_align(containing_block_text_align);
kid.mut_base().text_align = containing_block_text_align;

// Handle `text-indent` on behalf of any inline children that we have. This is
// necessary because any percentages are relative to the containing block, which only
Expand Down Expand Up @@ -2970,7 +2969,7 @@ pub trait ISizeAndMarginsComputer {
// Check for direction of parent flow (NOT Containing Block)
let block_mode = block.base.writing_mode;
let container_mode = block.base.block_container_writing_mode;
let block_align = block.base.flags.text_align();
let block_align = block.base.text_align;

// FIXME (mbrubeck): Handle vertical writing modes.
let parent_has_same_direction = container_mode.is_bidi_ltr() == block_mode.is_bidi_ltr();
Expand Down
5 changes: 3 additions & 2 deletions components/layout/data.rs
Expand Up @@ -51,10 +51,11 @@ impl Default for LayoutData {
}

bitflags! {
#[derive(Clone, Copy)]
pub struct LayoutDataFlags: u8 {
#[doc = "Whether a flow has been newly constructed."]
/// Whether a flow has been newly constructed.
const HAS_NEWLY_CONSTRUCTED_FLOW = 0x01;
#[doc = "Whether this node has been traversed by layout."]
/// Whether this node has been traversed by layout.
const HAS_BEEN_TRAVERSED = 0x02;
}
}
1 change: 1 addition & 0 deletions components/layout/display_list/builder.rs
Expand Up @@ -2223,6 +2223,7 @@ impl Fragment {
}

bitflags! {
#[derive(Clone, Copy)]
pub struct StackingContextCollectionFlags: u8 {
/// This flow never establishes a containing block.
const POSITION_NEVER_CREATES_CONTAINING_BLOCK = 0b001;
Expand Down
2 changes: 1 addition & 1 deletion components/layout/flex.rs
Expand Up @@ -658,7 +658,7 @@ impl FlexFlow {
// Per CSS 2.1 § 16.3.1, text alignment propagates to all children in flow.
//
// TODO(#2265, pcwalton): Do this in the cascade instead.
block.base.flags.set_text_align(containing_block_text_align);
block.base.text_align = containing_block_text_align;

let margin = block.fragment.style().logical_margin();
let auto_len = if line.auto_margin_count == 0 || line.free_space <= Au(0) {
Expand Down
91 changes: 37 additions & 54 deletions components/layout/flow.rs
Expand Up @@ -47,7 +47,6 @@ use app_units::Au;
use euclid::default::{Point2D, Rect, Size2D, Vector2D};
use gfx_traits::print_tree::PrintTree;
use gfx_traits::StackingContextId;
use num_traits::cast::FromPrimitive;
use serde::ser::{Serialize, SerializeStruct, Serializer};
use servo_geometry::{au_rect_to_f32_rect, f32_rect_to_au_rect, MaxRect};
use std::fmt;
Expand Down Expand Up @@ -613,73 +612,53 @@ impl FlowClass {
}

bitflags! {
#[doc = "Flags used in flows."]
/// Flags used in flows.
#[derive(Clone, Copy, Debug)]
pub struct FlowFlags: u32 {
// text align flags
#[doc = "Whether this flow is absolutely positioned. This is checked all over layout, so a"]
#[doc = "virtual call is too expensive."]
/// Whether this flow is absolutely positioned. This is checked all over layout, so a
/// virtual call is too expensive.
const IS_ABSOLUTELY_POSITIONED = 0b0000_0000_0000_0000_0100_0000;
#[doc = "Whether this flow clears to the left. This is checked all over layout, so a"]
#[doc = "virtual call is too expensive."]
/// Whether this flow clears to the left. This is checked all over layout, so a
/// virtual call is too expensive.
const CLEARS_LEFT = 0b0000_0000_0000_0000_1000_0000;
#[doc = "Whether this flow clears to the right. This is checked all over layout, so a"]
#[doc = "virtual call is too expensive."]
/// Whether this flow clears to the right. This is checked all over layout, so a
/// virtual call is too expensive.
const CLEARS_RIGHT = 0b0000_0000_0000_0001_0000_0000;
#[doc = "Whether this flow is left-floated. This is checked all over layout, so a"]
#[doc = "virtual call is too expensive."]
/// Whether this flow is left-floated. This is checked all over layout, so a
/// virtual call is too expensive.
const FLOATS_LEFT = 0b0000_0000_0000_0010_0000_0000;
#[doc = "Whether this flow is right-floated. This is checked all over layout, so a"]
#[doc = "virtual call is too expensive."]
/// Whether this flow is right-floated. This is checked all over layout, so a
/// virtual call is too expensive.
const FLOATS_RIGHT = 0b0000_0000_0000_0100_0000_0000;
#[doc = "Text alignment. \
\
NB: If you update this, update `TEXT_ALIGN_SHIFT` below."]
const TEXT_ALIGN = 0b0000_0000_0111_1000_0000_0000;
#[doc = "Whether this flow has a fragment with `counter-reset` or `counter-increment` \
styles."]
const AFFECTS_COUNTERS = 0b0000_0000_1000_0000_0000_0000;
#[doc = "Whether this flow's descendants have fragments that affect `counter-reset` or \
`counter-increment` styles."]
const HAS_COUNTER_AFFECTING_CHILDREN = 0b0000_0001_0000_0000_0000_0000;
#[doc = "Whether this flow behaves as though it had `position: static` for the purposes \
of positioning in the inline direction. This is set for flows with `position: \
static` and `position: relative` as well as absolutely-positioned flows with \
unconstrained positions in the inline direction."]
const INLINE_POSITION_IS_STATIC = 0b0000_0010_0000_0000_0000_0000;
#[doc = "Whether this flow behaves as though it had `position: static` for the purposes \
of positioning in the block direction. This is set for flows with `position: \
static` and `position: relative` as well as absolutely-positioned flows with \
unconstrained positions in the block direction."]
const BLOCK_POSITION_IS_STATIC = 0b0000_0100_0000_0000_0000_0000;
/// Whether this flow has a fragment with `counter-reset` or `counter-increment`
/// styles.
const AFFECTS_COUNTERS = 0b0000_0000_0000_1000_0000_0000;
/// Whether this flow's descendants have fragments that affect `counter-reset` or
// `counter-increment` styles.
const HAS_COUNTER_AFFECTING_CHILDREN = 0b0000_0000_0001_0000_0000_0000;
/// Whether this flow behaves as though it had `position: static` for the purposes
/// of positioning in the inline direction. This is set for flows with `position:
/// static` and `position: relative` as well as absolutely-positioned flows with
/// unconstrained positions in the inline direction."]
const INLINE_POSITION_IS_STATIC = 0b0000_0000_0010_0000_0000_0000;
/// Whether this flow behaves as though it had `position: static` for the purposes
/// of positioning in the block direction. This is set for flows with `position:
/// static` and `position: relative` as well as absolutely-positioned flows with
/// unconstrained positions in the block direction.
const BLOCK_POSITION_IS_STATIC = 0b0000_0000_0100_0000_0000_0000;

/// Whether any ancestor is a fragmentation container
const CAN_BE_FRAGMENTED = 0b0000_1000_0000_0000_0000_0000;
const CAN_BE_FRAGMENTED = 0b0000_0000_1000_0000_0000_0000;

/// Whether this flow contains any text and/or replaced fragments.
const CONTAINS_TEXT_OR_REPLACED_FRAGMENTS = 0b0001_0000_0000_0000_0000_0000;
const CONTAINS_TEXT_OR_REPLACED_FRAGMENTS = 0b0000_0001_0000_0000_0000_0000;

/// Whether margins are prohibited from collapsing with this flow.
const MARGINS_CANNOT_COLLAPSE = 0b0010_0000_0000_0000_0000_0000;
const MARGINS_CANNOT_COLLAPSE = 0b0000_0010_0000_0000_0000_0000;
}
}

/// The number of bits we must shift off to handle the text alignment field.
///
/// NB: If you update this, update `TEXT_ALIGN` above.
static TEXT_ALIGN_SHIFT: usize = 11;

impl FlowFlags {
#[inline]
pub fn text_align(self) -> TextAlign {
TextAlign::from_u32((self & FlowFlags::TEXT_ALIGN).bits() >> TEXT_ALIGN_SHIFT).unwrap()
}

#[inline]
pub fn set_text_align(&mut self, value: TextAlign) {
*self = (*self & !FlowFlags::TEXT_ALIGN) |
FlowFlags::from_bits((value as u32) << TEXT_ALIGN_SHIFT).unwrap();
}

#[inline]
pub fn float_kind(&self) -> Float {
if self.contains(FlowFlags::FLOATS_LEFT) {
Expand Down Expand Up @@ -936,6 +915,9 @@ pub struct BaseFlow {
/// Various flags for flows, tightly packed to save space.
pub flags: FlowFlags,

/// Text alignment of this flow.
pub text_align: TextAlign,

/// The ID of the StackingContext that contains this flow. This is initialized
/// to 0, but it assigned during the collect_stacking_contexts phase of display
/// list construction.
Expand Down Expand Up @@ -1115,8 +1097,9 @@ impl BaseFlow {
early_absolute_position_info: EarlyAbsolutePositionInfo::new(writing_mode),
late_absolute_position_info: LateAbsolutePositionInfo::new(),
clip: MaxRect::max_rect(),
flags: flags,
writing_mode: writing_mode,
flags,
text_align: TextAlign::Start,
writing_mode,
thread_id: 0,
stacking_context_id: StackingContextId::root(),
clipping_and_scrolling: None,
Expand Down
8 changes: 5 additions & 3 deletions components/layout/fragment.rs
Expand Up @@ -534,6 +534,7 @@ pub struct ScannedTextFragmentInfo {
}

bitflags! {
#[derive(Clone, Copy)]
pub struct ScannedTextFlags: u8 {
/// Whether a line break is required after this fragment if wrapping on newlines (e.g. if
/// `white-space: pre` is in effect).
Expand Down Expand Up @@ -3328,10 +3329,10 @@ bitflags! {
// Various flags we can use when splitting fragments. See
// `calculate_split_position_using_breaking_strategy()`.
struct SplitOptions: u8 {
#[doc = "True if this is the first fragment on the line."]
/// True if this is the first fragment on the line."]
const STARTS_LINE = 0x01;
#[doc = "True if we should attempt to split at character boundaries if this split fails. \
This is used to implement `overflow-wrap: break-word`."]
/// True if we should attempt to split at character boundaries if this split fails. \
/// This is used to implement `overflow-wrap: break-word`."]
const RETRY_AT_CHARACTER_BOUNDARIES = 0x02;
}
}
Expand Down Expand Up @@ -3446,6 +3447,7 @@ impl Overflow {
}

bitflags! {
#[derive(Clone, Debug)]
pub struct FragmentFlags: u8 {
// TODO(stshine): find a better name since these flags can also be used for grid item.
/// Whether this fragment represents a child in a row flex container.
Expand Down
4 changes: 2 additions & 2 deletions components/layout/incremental.rs
Expand Up @@ -16,8 +16,8 @@ pub enum RelayoutMode {

bitflags! {
pub struct SpecialRestyleDamage: u8 {
#[doc = "If this flag is set, we need to reflow the entire document. This is more or less a \
temporary hack to deal with cases that we don't handle incrementally yet."]
/// If this flag is set, we need to reflow the entire document. This is more or less a
/// temporary hack to deal with cases that we don't handle incrementally yet.
const REFLOW_ENTIRE_DOCUMENT = 0x01;
}
}
Expand Down
5 changes: 3 additions & 2 deletions components/layout/inline.rs
Expand Up @@ -221,7 +221,7 @@ impl Line {

int_range_index! {
#[derive(Serialize)]
#[doc = "The index of a fragment in a flattened vector of DOM elements."]
/// The index of a fragment in a flattened vector of DOM elements.
struct FragmentIndex(isize)
}

Expand Down Expand Up @@ -1658,7 +1658,7 @@ impl Flow for InlineFlow {
InlineFlow::set_inline_fragment_positions(
&mut self.fragments,
line,
self.base.flags.text_align(),
self.base.text_align,
indentation,
line_index + 1 == line_count,
);
Expand Down Expand Up @@ -2053,6 +2053,7 @@ pub struct InlineFragmentNodeInfo {
}

bitflags! {
#[derive(Clone)]
pub struct InlineFragmentNodeFlags: u8 {
const FIRST_FRAGMENT_OF_ELEMENT = 0x01;
const LAST_FRAGMENT_OF_ELEMENT = 0x02;
Expand Down
6 changes: 3 additions & 3 deletions components/layout_2020/fragment_tree/base_fragment.rs
Expand Up @@ -72,10 +72,10 @@ impl From<BaseFragmentInfo> for BaseFragment {
}

bitflags! {
#[doc = "Flags used to track various information about a DOM node during layout."]
#[derive(Serialize)]
/// Flags used to track various information about a DOM node during layout.
#[derive(Clone, Copy, Debug, Serialize)]
pub(crate) struct FragmentFlags: u8 {
#[doc = "Whether or not this node is a body element on an HTML document."]
/// Whether or not this node is a body element on an HTML document.
const IS_BODY_ELEMENT_OF_HTML_ELEMENT_ROOT = 0b00000001;
}
}
Expand Down

0 comments on commit 6a6609d

Please sign in to comment.