mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
parent
3cdc412a4c
commit
94fa868d2b
4 changed files with 84 additions and 68 deletions
|
@ -68,6 +68,7 @@ pub fn process_new_animations(rw_data: &mut LayoutTaskData, pipeline_id: Pipelin
|
|||
|
||||
/// Recalculates style for an animation. This does *not* run with the DOM lock held.
|
||||
pub fn recalc_style_for_animation(flow: &mut Flow, animation: &Animation) {
|
||||
#![allow(unsafe_code)] // #6376
|
||||
let mut damage = RestyleDamage::empty();
|
||||
flow.mutate_fragments(&mut |fragment| {
|
||||
if fragment.node.id() != animation.node {
|
||||
|
@ -84,7 +85,7 @@ pub fn recalc_style_for_animation(flow: &mut Flow, animation: &Animation) {
|
|||
}
|
||||
|
||||
let mut new_style = fragment.style.clone();
|
||||
animation.property_animation.update(&mut *new_style.make_unique(), progress);
|
||||
animation.property_animation.update(&mut *unsafe { new_style.make_unique() }, progress);
|
||||
damage.insert(incremental::compute_damage(&Some(fragment.style.clone()), &new_style));
|
||||
fragment.style = new_style
|
||||
});
|
||||
|
|
|
@ -950,6 +950,7 @@ impl InlineFlow {
|
|||
fn justify_inline_fragments(fragments: &mut InlineFragments,
|
||||
line: &Line,
|
||||
slack_inline_size: Au) {
|
||||
#![allow(unsafe_code)] // #6376
|
||||
// Fast path.
|
||||
if slack_inline_size == Au(0) {
|
||||
return
|
||||
|
@ -984,9 +985,9 @@ impl InlineFlow {
|
|||
// FIXME(pcwalton): This is an awful lot of uniqueness making. I don't see any easy way
|
||||
// to get rid of it without regressing the performance of the non-justified case,
|
||||
// though.
|
||||
let run = scanned_text_fragment_info.run.make_unique();
|
||||
let run = unsafe { scanned_text_fragment_info.run.make_unique() };
|
||||
{
|
||||
let glyph_runs = run.glyphs.make_unique();
|
||||
let glyph_runs = unsafe { run.glyphs.make_unique() };
|
||||
for mut glyph_run in glyph_runs.iter_mut() {
|
||||
let mut range = glyph_run.range.intersect(&fragment_range);
|
||||
if range.is_empty() {
|
||||
|
@ -994,7 +995,7 @@ impl InlineFlow {
|
|||
}
|
||||
range.shift_by(-glyph_run.range.begin());
|
||||
|
||||
let glyph_store = glyph_run.glyph_store.make_unique();
|
||||
let glyph_store = unsafe { glyph_run.glyph_store.make_unique() };
|
||||
glyph_store.distribute_extra_space_in_range(&range,
|
||||
space_per_expansion_opportunity);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue