Fix #14497: WeakMediaQueryListVec assumes its contents are still alive

This commit is contained in:
Pavel Potocek 2017-01-17 18:35:49 +01:00
parent 5fca03418f
commit 0d9b4e858c

View file

@ -138,7 +138,7 @@ impl WeakMediaQueryListVec {
/// Evaluate media query lists and report changes /// Evaluate media query lists and report changes
/// https://drafts.csswg.org/cssom-view/#evaluate-media-queries-and-report-changes /// https://drafts.csswg.org/cssom-view/#evaluate-media-queries-and-report-changes
pub fn evaluate_and_report_changes(&self) { pub fn evaluate_and_report_changes(&self) {
for mql in self.cell.borrow().iter() { self.cell.borrow_mut().update(|mql| {
let mql = mql.root().unwrap(); let mql = mql.root().unwrap();
if let MediaQueryListMatchState::Changed(_) = mql.evaluate_changes() { if let MediaQueryListMatchState::Changed(_) = mql.evaluate_changes() {
let event = MediaQueryListEvent::new(&mql.global(), let event = MediaQueryListEvent::new(&mql.global(),
@ -148,7 +148,7 @@ impl WeakMediaQueryListVec {
mql.Matches()); mql.Matches());
event.upcast::<Event>().fire(mql.upcast::<EventTarget>()); event.upcast::<Event>().fire(mql.upcast::<EventTarget>());
} }
} });
} }
} }