mirror of
https://github.com/servo/servo.git
synced 2025-07-22 23:03:42 +01:00
Clean up restyle damage after it no longer applies
BUBBLE_ISIZES and REPAINT can become "stuck" on in the default Servo configuration once they are activated. This is solved by removing these damage bits after they no longer apply. There isn't a good way to test this, other than noting that it doesn't break any existing CSS tests. This will become more important in the future as the REPAINT bit is used to implement display list patching.
This commit is contained in:
parent
2be0cb7827
commit
90e2f7bfbf
2 changed files with 5 additions and 3 deletions
|
@ -27,7 +27,7 @@ use fragment::{InlineAbsoluteHypotheticalFragmentInfo, TableColumnFragmentInfo};
|
|||
use fragment::{InlineBlockFragmentInfo, SpecificFragmentInfo, UnscannedTextFragmentInfo};
|
||||
use fragment::{WhitespaceStrippingResult};
|
||||
use gfx::display_list::OpaqueNode;
|
||||
use incremental::{RECONSTRUCT_FLOW, RestyleDamage};
|
||||
use incremental::{BUBBLE_ISIZES, RECONSTRUCT_FLOW, RestyleDamage};
|
||||
use inline::{FIRST_FRAGMENT_OF_ELEMENT, InlineFlow, InlineFragmentNodeFlags};
|
||||
use inline::{InlineFragmentNodeInfo, LAST_FRAGMENT_OF_ELEMENT};
|
||||
use list_item::{ListItemFlow, ListStyleTypeContent};
|
||||
|
@ -1697,7 +1697,8 @@ impl FlowConstructionUtils for FlowRef {
|
|||
/// properly computed. (This is not, however, a memory safety problem.)
|
||||
fn finish(&mut self) {
|
||||
if !opts::get().bubble_inline_sizes_separately {
|
||||
flow_ref::deref_mut(self).bubble_inline_sizes()
|
||||
flow_ref::deref_mut(self).bubble_inline_sizes();
|
||||
flow::mut_base(flow_ref::deref_mut(self)).restyle_damage.remove(BUBBLE_ISIZES);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue