From 285313f3c7a528bfde8df567262e3f9f4df61814 Mon Sep 17 00:00:00 2001 From: Manish Goregaokar Date: Wed, 21 Feb 2018 00:36:35 -0800 Subject: [PATCH] bail early for initial valued backgrounds --- components/layout/table.rs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/components/layout/table.rs b/components/layout/table.rs index 42c759cee63..72916de36ed 100644 --- a/components/layout/table.rs +++ b/components/layout/table.rs @@ -19,11 +19,12 @@ use fragment::{Fragment, FragmentBorderBoxIterator, Overflow}; use gfx_traits::print_tree::PrintTree; use layout_debug; use model::{IntrinsicISizes, IntrinsicISizesContribution, MaybeAuto}; -use std::{cmp, fmt, ptr}; +use std::{cmp, fmt}; use style::computed_values::{border_collapse, border_spacing, table_layout}; use style::context::SharedStyleContext; use style::logical_geometry::LogicalSize; use style::properties::ComputedValues; +use style::properties::style_structs::Background; use style::servo::restyle_damage::ServoRestyleDamage; use style::values::CSSFloat; use style::values::computed::LengthOrPercentageOrAuto; @@ -1159,20 +1160,18 @@ impl<'table> TableCellStyleInfo<'table> { }; { let cell_flow = &self.cell.block_flow; - let mut sty_ptr = ptr::null(); + let initial = ComputedValues::initial_values(); - let mut build_dl = |sty: &ComputedValues, state: &mut &mut DisplayListBuildState| { + let build_dl = |sty: &ComputedValues, state: &mut &mut DisplayListBuildState| { + let background = sty.get_background(); // Don't redraw backgrounds that we've already drawn - if sty_ptr == sty as *const _ { + if background as *const Background == initial.get_background() as *const _ { return; } - let background = sty.get_background(); let background_color = sty.resolve_color(background.background_color); cell_flow.build_display_list_for_background_if_applicable_with_background( state, background, background_color ); - - sty_ptr = sty as *const _; }; if let Some(ref sty) = self.colgroup_style {