Make script build without impl<T: HeapSizeOf> HeapSizeOf for Arc<T>.

The removal of this impl is not included in this commit.
CC https://github.com/servo/heapsize/issues/37#issuecomment-249861171
This commit is contained in:
Simon Sapin 2016-09-27 15:30:55 +02:00
parent 29c72d15a9
commit aeb3efda1f
8 changed files with 21 additions and 3 deletions

View file

@ -146,6 +146,14 @@ enum ParserBlockedByScript {
Unblocked,
}
#[derive(JSTraceable, HeapSizeOf)]
#[must_root]
struct StylesheetInDocument {
node: JS<Node>,
#[ignore_heap_size_of = "Arc"]
stylesheet: Arc<Stylesheet>,
}
// https://dom.spec.whatwg.org/#document
#[dom_struct]
pub struct Document {
@ -174,7 +182,7 @@ pub struct Document {
anchors: MutNullableHeap<JS<HTMLCollection>>,
applets: MutNullableHeap<JS<HTMLCollection>>,
/// List of stylesheets associated with nodes in this document. |None| if the list needs to be refreshed.
stylesheets: DOMRefCell<Option<Vec<(JS<Node>, Arc<Stylesheet>)>>>,
stylesheets: DOMRefCell<Option<Vec<StylesheetInDocument>>>,
/// Whether the list of stylesheets has changed since the last reflow was triggered.
stylesheets_changed_since_reflow: Cell<bool>,
ready_state: Cell<DocumentReadyState>,
@ -1891,13 +1899,16 @@ impl Document {
node.get_stylesheet()
} else {
None
}.map(|stylesheet| (JS::from_ref(&*node), stylesheet))
}.map(|stylesheet| StylesheetInDocument {
node: JS::from_ref(&*node),
stylesheet: stylesheet
})
})
.collect());
};
}
self.stylesheets.borrow().as_ref().unwrap().iter()
.map(|&(_, ref stylesheet)| stylesheet.clone())
.map(|s| s.stylesheet.clone())
.collect()
}