mirror of
https://github.com/servo/servo.git
synced 2025-08-04 21:20:23 +01:00
Fix panics in the script_task memory reporter.
These are caused by page_root being empty.
This commit is contained in:
parent
d90907cb5f
commit
97e3b24aa6
1 changed files with 17 additions and 14 deletions
|
@ -1188,23 +1188,26 @@ impl ScriptTask {
|
||||||
let mut urls = vec![];
|
let mut urls = vec![];
|
||||||
let mut dom_tree_size = 0;
|
let mut dom_tree_size = 0;
|
||||||
let mut reports = vec![];
|
let mut reports = vec![];
|
||||||
for it_page in self.root_page().iter() {
|
|
||||||
let current_url = it_page.document().url().serialize();
|
|
||||||
urls.push(current_url.clone());
|
|
||||||
|
|
||||||
for child in NodeCast::from_ref(&*it_page.document()).traverse_preorder() {
|
if let Some(root_page) = self.page.borrow().as_ref() {
|
||||||
let target = EventTargetCast::from_ref(&*child);
|
for it_page in root_page.iter() {
|
||||||
|
let current_url = it_page.document().url().serialize();
|
||||||
|
urls.push(current_url.clone());
|
||||||
|
|
||||||
|
for child in NodeCast::from_ref(&*it_page.document()).traverse_preorder() {
|
||||||
|
let target = EventTargetCast::from_ref(&*child);
|
||||||
|
dom_tree_size += heap_size_of_eventtarget(target);
|
||||||
|
}
|
||||||
|
let window = it_page.window();
|
||||||
|
let target = EventTargetCast::from_ref(&*window);
|
||||||
dom_tree_size += heap_size_of_eventtarget(target);
|
dom_tree_size += heap_size_of_eventtarget(target);
|
||||||
}
|
|
||||||
let window = it_page.window();
|
|
||||||
let target = EventTargetCast::from_ref(&*window);
|
|
||||||
dom_tree_size += heap_size_of_eventtarget(target);
|
|
||||||
|
|
||||||
reports.push(Report {
|
reports.push(Report {
|
||||||
path: path![format!("url({})", current_url), "dom-tree"],
|
path: path![format!("url({})", current_url), "dom-tree"],
|
||||||
kind: ReportKind::ExplicitJemallocHeapSize,
|
kind: ReportKind::ExplicitJemallocHeapSize,
|
||||||
size: dom_tree_size,
|
size: dom_tree_size,
|
||||||
})
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
let path_seg = format!("url({})", urls.join(", "));
|
let path_seg = format!("url({})", urls.join(", "));
|
||||||
reports.extend(ScriptTask::get_reports(self.get_cx(), path_seg));
|
reports.extend(ScriptTask::get_reports(self.get_cx(), path_seg));
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue