diff options
Diffstat (limited to 'components/layout')
-rw-r--r-- | components/layout/display_list_builder.rs | 3 | ||||
-rw-r--r-- | components/layout/fragment.rs | 23 |
2 files changed, 20 insertions, 6 deletions
diff --git a/components/layout/display_list_builder.rs b/components/layout/display_list_builder.rs index 54725d122b0..2e4ae665ea9 100644 --- a/components/layout/display_list_builder.rs +++ b/components/layout/display_list_builder.rs @@ -44,6 +44,7 @@ use servo_util::geometry::{mod, Au, to_px}; use servo_util::logical_geometry::{LogicalPoint, LogicalRect, LogicalSize}; use servo_util::opts; use std::default::Default; +use std::iter::repeat; use std::num::FloatMath; use style::computed::{AngleOrCorner, LengthOrPercentage, HorizontalDirection, VerticalDirection}; use style::computed::{Image, LinearGradient}; @@ -881,7 +882,7 @@ impl FragmentDisplayListBuilding for Fragment { renderer.deref().lock().send(SendPixelContents(sender)); receiver.recv() }, - None => Vec::from_elem(width * height * 4, 0xFFu8) + None => repeat(0xFFu8).take(width * height * 4).collect(), }; let canvas_display_item = box ImageDisplayItem { diff --git a/components/layout/fragment.rs b/components/layout/fragment.rs index 521b000dfcf..8bad0a288b6 100644 --- a/components/layout/fragment.rs +++ b/components/layout/fragment.rs @@ -1256,11 +1256,24 @@ impl Fragment { pub fn find_split_info_by_new_line(&self) -> Option<(SplitInfo, Option<SplitInfo>, Arc<Box<TextRun>> /* TODO(bjz): remove */)> { match self.specific { - SpecificFragmentInfo::Canvas(_) | SpecificFragmentInfo::Generic | SpecificFragmentInfo::Iframe(_) | SpecificFragmentInfo::Image(_) | SpecificFragmentInfo::Table | SpecificFragmentInfo::TableCell | - SpecificFragmentInfo::TableRow | SpecificFragmentInfo::TableWrapper => None, - SpecificFragmentInfo::TableColumn(_) => panic!("Table column fragments do not need to split"), - SpecificFragmentInfo::UnscannedText(_) => panic!("Unscanned text fragments should have been scanned by now!"), - SpecificFragmentInfo::InlineBlock(_) | SpecificFragmentInfo::InlineAbsoluteHypothetical(_) => { + SpecificFragmentInfo::Canvas(_) | + SpecificFragmentInfo::Generic | + SpecificFragmentInfo::Iframe(_) | + SpecificFragmentInfo::Image(_) | + SpecificFragmentInfo::Table | + SpecificFragmentInfo::TableCell | + SpecificFragmentInfo::TableRow | + SpecificFragmentInfo::TableWrapper => { + None + } + SpecificFragmentInfo::TableColumn(_) => { + panic!("Table column fragments do not need to split") + } + SpecificFragmentInfo::UnscannedText(_) => { + panic!("Unscanned text fragments should have been scanned by now!") + } + SpecificFragmentInfo::InlineBlock(_) | + SpecificFragmentInfo::InlineAbsoluteHypothetical(_) => { panic!("Inline blocks or inline absolute hypothetical fragments do not get split") } SpecificFragmentInfo::ScannedText(ref text_fragment_info) => { |