mirror of
https://github.com/servo/servo.git
synced 2025-08-06 14:10:11 +01:00
Use a simple Temporary value in TreeIterator
This commit is contained in:
parent
c026825e69
commit
e20d997b37
9 changed files with 156 additions and 133 deletions
|
@ -346,12 +346,13 @@ fn broadcast_radio_checked(broadcaster: JSRef<HTMLInputElement>, group: Option<&
|
|||
// There is no DOM tree manipulation here, so this is safe
|
||||
let iter = unsafe {
|
||||
doc_node.query_selector_iter("input[type=radio]".to_owned()).unwrap()
|
||||
.filter_map(|t| HTMLInputElementCast::to_ref(t))
|
||||
.filter(|&r| in_same_group(r, owner, group) && broadcaster != r)
|
||||
.filter_map(HTMLInputElementCast::to_temporary)
|
||||
.map(|t| t.root())
|
||||
.filter(|r| in_same_group(r.r(), owner, group) && broadcaster != r.r())
|
||||
};
|
||||
for r in iter {
|
||||
if r.Checked() {
|
||||
r.SetChecked(false);
|
||||
if r.r().Checked() {
|
||||
r.r().SetChecked(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -684,12 +685,14 @@ impl<'a> Activatable for JSRef<'a, HTMLInputElement> {
|
|||
// Safe since we only manipulate the DOM tree after finding an element
|
||||
let checked_member = unsafe {
|
||||
doc_node.query_selector_iter("input[type=radio]".to_owned()).unwrap()
|
||||
.filter_map(|t| HTMLInputElementCast::to_ref(t))
|
||||
.filter(|&r| in_same_group(r, owner.r(),
|
||||
group.as_ref().map(|gr| gr.as_slice())))
|
||||
.find(|r| r.Checked())
|
||||
.filter_map(HTMLInputElementCast::to_temporary)
|
||||
.map(|t| t.root())
|
||||
.find(|r| {
|
||||
in_same_group(r.r(), owner.r(), group.as_ref().map(|gr| gr.as_slice())) &&
|
||||
r.r().Checked()
|
||||
})
|
||||
};
|
||||
cache.checked_radio.assign(checked_member);
|
||||
cache.checked_radio.assign(checked_member.r());
|
||||
cache.checked_changed = self.checked_changed.get();
|
||||
self.SetChecked(true);
|
||||
}
|
||||
|
@ -815,12 +818,10 @@ impl<'a> Activatable for JSRef<'a, HTMLInputElement> {
|
|||
// and only then performing actions which may modify the DOM tree
|
||||
unsafe {
|
||||
node.query_selector_iter("input[type=submit]".to_owned()).unwrap()
|
||||
.filter_map(|t| {
|
||||
let h: Option<JSRef<HTMLInputElement>> = HTMLInputElementCast::to_ref(t);
|
||||
h
|
||||
})
|
||||
.find(|r| r.form_owner() == owner)
|
||||
.map(|s| s.synthetic_click_activation(ctrlKey, shiftKey, altKey, metaKey));
|
||||
.filter_map(HTMLInputElementCast::to_temporary)
|
||||
.map(|t| t.root())
|
||||
.find(|r| r.r().form_owner() == owner)
|
||||
.map(|s| s.r().synthetic_click_activation(ctrlKey, shiftKey, altKey, metaKey));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue