stylo: Don't keep around cached style after one-off style resolutions.

This commit is contained in:
Cameron McCormack 2016-12-15 14:46:09 +08:00
parent d03039757c
commit 64db84d4c5

View file

@ -807,6 +807,8 @@ pub extern "C" fn Servo_ResolveStyle(element: RawGeckoElementBorrowed,
consume: structs::ConsumeStyleBehavior, consume: structs::ConsumeStyleBehavior,
compute: structs::LazyComputeBehavior) -> ServoComputedValuesStrong compute: structs::LazyComputeBehavior) -> ServoComputedValuesStrong
{ {
use style::context::StyleContext;
let element = GeckoElement(element); let element = GeckoElement(element);
debug!("Servo_ResolveStyle: {:?}, consume={:?}, compute={:?}", element, consume, compute); debug!("Servo_ResolveStyle: {:?}, consume={:?}, compute={:?}", element, consume, compute);
@ -833,6 +835,9 @@ pub extern "C" fn Servo_ResolveStyle(element: RawGeckoElementBorrowed,
recalc_style_at::<_, _, RecalcStyleOnly>(&context, &mut traversal_data, element, &mut data); recalc_style_at::<_, _, RecalcStyleOnly>(&context, &mut traversal_data, element, &mut data);
// We don't want to keep any cached style around after this one-off style resolution.
context.local_context().style_sharing_candidate_cache.borrow_mut().clear();
// The element was either unstyled or needed restyle. If it was unstyled, it may have // The element was either unstyled or needed restyle. If it was unstyled, it may have
// additional unstyled children that subsequent traversals won't find now that the style // additional unstyled children that subsequent traversals won't find now that the style
// on this element is up-to-date. Mark dirty descendants in that case. // on this element is up-to-date. Mark dirty descendants in that case.