mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
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:
parent
29c72d15a9
commit
aeb3efda1f
8 changed files with 21 additions and 3 deletions
|
@ -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()
|
||||
}
|
||||
|
||||
|
|
|
@ -109,6 +109,7 @@ pub struct Element {
|
|||
prefix: Option<DOMString>,
|
||||
attrs: DOMRefCell<Vec<JS<Attr>>>,
|
||||
id_attribute: DOMRefCell<Option<Atom>>,
|
||||
#[ignore_heap_size_of = "Arc"]
|
||||
style_attribute: DOMRefCell<Option<Arc<PropertyDeclarationBlock>>>,
|
||||
attr_list: MutNullableHeap<JS<NamedNodeMap>>,
|
||||
class_list: MutNullableHeap<JS<DOMTokenList>>,
|
||||
|
|
|
@ -47,6 +47,7 @@ struct ImageRequest {
|
|||
state: State,
|
||||
parsed_url: Option<Url>,
|
||||
source_url: Option<DOMString>,
|
||||
#[ignore_heap_size_of = "Arc"]
|
||||
image: Option<Arc<Image>>,
|
||||
metadata: Option<ImageMetadata>,
|
||||
}
|
||||
|
|
|
@ -52,6 +52,7 @@ no_jsmanaged_fields!(Stylesheet);
|
|||
pub struct HTMLLinkElement {
|
||||
htmlelement: HTMLElement,
|
||||
rel_list: MutNullableHeap<JS<DOMTokenList>>,
|
||||
#[ignore_heap_size_of = "Arc"]
|
||||
stylesheet: DOMRefCell<Option<Arc<Stylesheet>>>,
|
||||
|
||||
/// https://html.spec.whatwg.org/multipage/#a-style-sheet-that-is-blocking-scripts
|
||||
|
|
|
@ -27,6 +27,7 @@ use style::viewport::ViewportRule;
|
|||
#[dom_struct]
|
||||
pub struct HTMLMetaElement {
|
||||
htmlelement: HTMLElement,
|
||||
#[ignore_heap_size_of = "Arc"]
|
||||
stylesheet: DOMRefCell<Option<Arc<Stylesheet>>>,
|
||||
}
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ use string_cache::Atom;
|
|||
#[dom_struct]
|
||||
pub struct HTMLObjectElement {
|
||||
htmlelement: HTMLElement,
|
||||
#[ignore_heap_size_of = "Arc"]
|
||||
image: DOMRefCell<Option<Arc<Image>>>,
|
||||
}
|
||||
|
||||
|
|
|
@ -24,6 +24,7 @@ use style::stylesheets::{Stylesheet, Origin};
|
|||
#[dom_struct]
|
||||
pub struct HTMLStyleElement {
|
||||
htmlelement: HTMLElement,
|
||||
#[ignore_heap_size_of = "Arc"]
|
||||
stylesheet: DOMRefCell<Option<Arc<Stylesheet>>>,
|
||||
}
|
||||
|
||||
|
|
|
@ -83,6 +83,7 @@ pub struct WorkerGlobalScope {
|
|||
worker_id: WorkerId,
|
||||
pipeline_id: PipelineId,
|
||||
worker_url: Url,
|
||||
#[ignore_heap_size_of = "Arc"]
|
||||
closing: Option<Arc<AtomicBool>>,
|
||||
#[ignore_heap_size_of = "Defined in js"]
|
||||
runtime: Runtime,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue