mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Improve Au(0)
constructions (#33709)
This replaces `Au(0)` with `Au::zero()` and other utility functions when possible. Signed-off-by: hackerbirds <120066692+hackerbirds@users.noreply.github.com>
This commit is contained in:
parent
c6d305fbb3
commit
a591778a25
7 changed files with 20 additions and 16 deletions
1
Cargo.lock
generated
1
Cargo.lock
generated
|
@ -2050,6 +2050,7 @@ dependencies = [
|
|||
"malloc_size_of",
|
||||
"malloc_size_of_derive",
|
||||
"net_traits",
|
||||
"num-traits",
|
||||
"parking_lot",
|
||||
"range",
|
||||
"serde",
|
||||
|
|
|
@ -32,6 +32,7 @@ log = { workspace = true }
|
|||
malloc_size_of = { workspace = true }
|
||||
malloc_size_of_derive = { workspace = true }
|
||||
net_traits = { workspace = true }
|
||||
num-traits = { workspace = true }
|
||||
parking_lot = { workspace = true }
|
||||
range = { path = "../range" }
|
||||
serde = { workspace = true }
|
||||
|
|
|
@ -441,7 +441,7 @@ impl Font {
|
|||
let offset = prev_glyph_id.map(|prev| {
|
||||
let h_kerning = Au::from_f64_px(self.glyph_h_kerning(prev, glyph_id));
|
||||
advance += h_kerning;
|
||||
Point2D::new(h_kerning, Au(0))
|
||||
Point2D::new(h_kerning, Au::zero())
|
||||
});
|
||||
|
||||
let glyph = GlyphData::new(glyph_id, advance, offset, true, true);
|
||||
|
@ -818,7 +818,7 @@ pub struct RunMetrics {
|
|||
impl RunMetrics {
|
||||
pub fn new(advance: Au, ascent: Au, descent: Au) -> RunMetrics {
|
||||
let bounds = Rect::new(
|
||||
Point2D::new(Au(0), -ascent),
|
||||
Point2D::new(Au::zero(), -ascent),
|
||||
Size2D::new(advance, ascent + descent),
|
||||
);
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ use std::{fmt, mem};
|
|||
|
||||
use app_units::Au;
|
||||
use euclid::default::Point2D;
|
||||
use euclid::num::Zero;
|
||||
pub use fonts_traits::ByteIndex;
|
||||
use itertools::Either;
|
||||
use log::debug;
|
||||
|
@ -97,7 +98,7 @@ fn is_simple_glyph_id(id: GlyphId) -> bool {
|
|||
}
|
||||
|
||||
fn is_simple_advance(advance: Au) -> bool {
|
||||
advance >= Au(0) && {
|
||||
advance >= Au::zero() && {
|
||||
let unsigned_au = advance.0 as u32;
|
||||
(unsigned_au & (GLYPH_ADVANCE_MASK >> GLYPH_ADVANCE_SHIFT)) == unsigned_au
|
||||
}
|
||||
|
@ -474,7 +475,7 @@ impl GlyphStore {
|
|||
GlyphStore {
|
||||
entry_buffer: vec![GlyphEntry::initial(); length],
|
||||
detail_store: DetailedGlyphStore::new(),
|
||||
total_advance: Au(0),
|
||||
total_advance: Au::zero(),
|
||||
total_word_separators: 0,
|
||||
has_detailed_glyphs: false,
|
||||
is_whitespace,
|
||||
|
@ -516,7 +517,7 @@ impl GlyphStore {
|
|||
|
||||
#[inline(never)]
|
||||
fn cache_total_advance_and_word_separators(&mut self) {
|
||||
let mut total_advance = Au(0);
|
||||
let mut total_advance = Au::zero();
|
||||
let mut total_word_separators = 0;
|
||||
for glyph in self.iter_glyphs_for_byte_range(&Range::new(ByteIndex(0), self.len())) {
|
||||
total_advance += glyph.advance();
|
||||
|
@ -651,7 +652,7 @@ impl GlyphStore {
|
|||
extra_word_spacing: Au,
|
||||
) -> (usize, Au) {
|
||||
let mut index = 0;
|
||||
let mut current_advance = Au(0);
|
||||
let mut current_advance = Au::zero();
|
||||
for glyph in self.iter_glyphs_for_byte_range(range) {
|
||||
if glyph.char_is_word_separator() {
|
||||
current_advance += glyph.advance() + extra_word_spacing
|
||||
|
@ -682,7 +683,7 @@ impl GlyphStore {
|
|||
extra_word_spacing: Au,
|
||||
) -> Au {
|
||||
self.iter_glyphs_for_byte_range(range)
|
||||
.fold(Au(0), |advance, glyph| {
|
||||
.fold(Au::zero(), |advance, glyph| {
|
||||
if glyph.char_is_word_separator() {
|
||||
advance + glyph.advance() + extra_word_spacing
|
||||
} else {
|
||||
|
|
|
@ -26,6 +26,7 @@ use harfbuzz_sys::{
|
|||
HB_OT_LAYOUT_BASELINE_TAG_ROMAN,
|
||||
};
|
||||
use log::debug;
|
||||
use num_traits::Zero;
|
||||
|
||||
use crate::platform::font::FontTable;
|
||||
use crate::{
|
||||
|
@ -107,11 +108,11 @@ impl ShapedGlyphData {
|
|||
let x_advance = Au::from_f64_px(x_advance);
|
||||
let y_advance = Au::from_f64_px(y_advance);
|
||||
|
||||
let offset = if x_offset == Au(0) && y_offset == Au(0) && y_advance == Au(0) {
|
||||
let offset = if x_offset.is_zero() && y_offset.is_zero() && y_advance.is_zero() {
|
||||
None
|
||||
} else {
|
||||
// adjust the pen..
|
||||
if y_advance > Au(0) {
|
||||
if y_advance > Au::zero() {
|
||||
*y_pos -= y_advance;
|
||||
}
|
||||
|
||||
|
@ -466,7 +467,7 @@ impl Shaper {
|
|||
let mut glyph_span = 0..0;
|
||||
let mut byte_range = 0..0;
|
||||
|
||||
let mut y_pos = Au(0);
|
||||
let mut y_pos = Au::zero();
|
||||
|
||||
// main loop over each glyph. each iteration usually processes 1 glyph and 1+ chars.
|
||||
// in cases with complex glyph-character associations, 2+ glyphs and 1+ chars can be
|
||||
|
|
|
@ -1041,10 +1041,10 @@ impl<'a> TableLayout<'a> {
|
|||
|column_index: &usize| self.column_measures[*column_index].percentage.0 > 0.;
|
||||
let has_percent_zero = |column_index: &usize| !has_percent_greater_than_zero(column_index);
|
||||
let has_max_content = |column_index: &usize| {
|
||||
self.column_measures[*column_index]
|
||||
!self.column_measures[*column_index]
|
||||
.content_sizes
|
||||
.max_content !=
|
||||
Au(0)
|
||||
.max_content
|
||||
.is_zero()
|
||||
};
|
||||
|
||||
let max_content_sum =
|
||||
|
@ -2862,8 +2862,8 @@ fn get_outer_sizes_for_measurement(
|
|||
let min_size = style.min_box_size(writing_mode);
|
||||
let max_size = style.max_box_size(writing_mode);
|
||||
(
|
||||
outer_size(size.map(|v| get_size_for_axis(v).unwrap_or(Au(0)))),
|
||||
outer_size(min_size.map(|v| get_size_for_axis(v).unwrap_or(Au(0)))),
|
||||
outer_size(size.map(|v| get_size_for_axis(v).unwrap_or_else(Au::zero))),
|
||||
outer_size(min_size.map(|v| get_size_for_axis(v).unwrap_or_else(Au::zero))),
|
||||
outer_size(max_size.map(|v| get_size_for_axis(v).unwrap_or(MAX_AU))),
|
||||
size.inline.is_keyword(),
|
||||
get_size_percentage_contribution(&size, &max_size),
|
||||
|
|
|
@ -875,7 +875,7 @@ impl LayoutThread {
|
|||
root_flow.overflow.scroll.size
|
||||
};
|
||||
|
||||
let origin = Rect::new(Point2D::new(Au(0), Au(0)), root_size).to_layout();
|
||||
let origin = Rect::new(Point2D::zero(), root_size).to_layout();
|
||||
build_state.root_stacking_context.bounds = origin;
|
||||
build_state.root_stacking_context.overflow = origin;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue