Move HTMLSelectElement upcast call into HTMLOptionsCollection constructor. Fixes #15521

This commit is contained in:
Simon Whitehead 2017-02-14 00:49:31 +11:00
parent 357df35045
commit 7409031af2
2 changed files with 6 additions and 5 deletions

View file

@ -16,6 +16,7 @@ use dom::bindings::str::DOMString;
use dom::element::Element; use dom::element::Element;
use dom::htmlcollection::{CollectionFilter, HTMLCollection}; use dom::htmlcollection::{CollectionFilter, HTMLCollection};
use dom::htmloptionelement::HTMLOptionElement; use dom::htmloptionelement::HTMLOptionElement;
use dom::htmlselectelement::HTMLSelectElement;
use dom::node::{document_from_node, Node}; use dom::node::{document_from_node, Node};
use dom::window::Window; use dom::window::Window;
@ -25,16 +26,16 @@ pub struct HTMLOptionsCollection {
} }
impl HTMLOptionsCollection { impl HTMLOptionsCollection {
fn new_inherited(root: &Node, filter: Box<CollectionFilter + 'static>) -> HTMLOptionsCollection { fn new_inherited(select: &HTMLSelectElement, filter: Box<CollectionFilter + 'static>) -> HTMLOptionsCollection {
HTMLOptionsCollection { HTMLOptionsCollection {
collection: HTMLCollection::new_inherited(root, filter), collection: HTMLCollection::new_inherited(select.upcast(), filter),
} }
} }
pub fn new(window: &Window, root: &Node, filter: Box<CollectionFilter + 'static>) pub fn new(window: &Window, select: &HTMLSelectElement, filter: Box<CollectionFilter + 'static>)
-> Root<HTMLOptionsCollection> -> Root<HTMLOptionsCollection>
{ {
reflect_dom_object(box HTMLOptionsCollection::new_inherited(root, filter), reflect_dom_object(box HTMLOptionsCollection::new_inherited(select, filter),
window, window,
HTMLOptionsCollectionBinding::Wrap) HTMLOptionsCollectionBinding::Wrap)
} }

View file

@ -243,7 +243,7 @@ impl HTMLSelectElementMethods for HTMLSelectElement {
self.options.or_init(|| { self.options.or_init(|| {
let window = window_from_node(self); let window = window_from_node(self);
HTMLOptionsCollection::new( HTMLOptionsCollection::new(
&window, self.upcast(), box OptionsFilter) &window, self, box OptionsFilter)
}) })
} }