Skip empty fragments when justifying inline fragments.

Fixes #5856
This commit is contained in:
Kevin Butler 2015-05-18 15:54:10 +01:00
parent ab145c43ac
commit dcf91d9eba

View file

@ -959,14 +959,13 @@ impl InlineFlow {
let mut expansion_opportunities = 0i32; let mut expansion_opportunities = 0i32;
for fragment_index in line.range.each_index() { for fragment_index in line.range.each_index() {
let fragment = fragments.get(fragment_index.to_usize()); let fragment = fragments.get(fragment_index.to_usize());
let scanned_text_fragment_info = let scanned_text_fragment_info = match fragment.specific {
if let SpecificFragmentInfo::ScannedText(ref info) = fragment.specific { SpecificFragmentInfo::ScannedText(ref info) if !info.range.is_empty() => info,
info _ => continue
} else { };
continue let fragment_range = scanned_text_fragment_info.range;
};
for slice in scanned_text_fragment_info.run.character_slices_in_range( for slice in scanned_text_fragment_info.run.character_slices_in_range(&fragment_range) {
&scanned_text_fragment_info.range) {
expansion_opportunities += slice.glyphs.space_count_in_range(&slice.range) as i32 expansion_opportunities += slice.glyphs.space_count_in_range(&slice.range) as i32
} }
} }
@ -976,12 +975,10 @@ impl InlineFlow {
(expansion_opportunities as f64); (expansion_opportunities as f64);
for fragment_index in line.range.each_index() { for fragment_index in line.range.each_index() {
let fragment = fragments.get_mut(fragment_index.to_usize()); let fragment = fragments.get_mut(fragment_index.to_usize());
let mut scanned_text_fragment_info = let mut scanned_text_fragment_info = match fragment.specific {
if let SpecificFragmentInfo::ScannedText(ref mut info) = fragment.specific { SpecificFragmentInfo::ScannedText(ref mut info) if !info.range.is_empty() => info,
info _ => continue
} else { };
continue
};
let fragment_range = scanned_text_fragment_info.range; let fragment_range = scanned_text_fragment_info.range;
// FIXME(pcwalton): This is an awful lot of uniqueness making. I don't see any easy way // FIXME(pcwalton): This is an awful lot of uniqueness making. I don't see any easy way