diff options
author | Dongie Agnir <dongie.agnir@gmail.com> | 2015-10-27 15:20:35 -1000 |
---|---|---|
committer | Dongie Agnir <dongie.agnir@gmail.com> | 2015-10-27 15:20:35 -1000 |
commit | 4849033297815625939d2f7d8f68a14adfaa5477 (patch) | |
tree | 257899f5371560ff2bd4800cbd2ed1fa4750d6f0 | |
parent | 92e008307fe810ff9762d98b261e88f2040d1d5c (diff) | |
download | servo-4849033297815625939d2f7d8f68a14adfaa5477.tar.gz servo-4849033297815625939d2f7d8f68a14adfaa5477.zip |
Add fixes based on review.
- Use if let instead of match for Option
- Refactor common code into pick_if_selected_and_reset
-rw-r--r-- | components/script/dom/htmloptionelement.rs | 28 | ||||
-rw-r--r-- | components/script/dom/htmlselectelement.rs | 13 |
2 files changed, 19 insertions, 22 deletions
diff --git a/components/script/dom/htmloptionelement.rs b/components/script/dom/htmloptionelement.rs index 64defdd9235..8c7dea8ac1e 100644 --- a/components/script/dom/htmloptionelement.rs +++ b/components/script/dom/htmloptionelement.rs @@ -56,6 +56,17 @@ impl HTMLOptionElement { pub fn set_selectedness(&self, selected: bool) { self.selectedness.set(selected); } + + fn pick_if_selected_and_reset(&self) { + if let Some(select) = self.upcast::<Node>().ancestors() + .filter_map(Root::downcast::<HTMLSelectElement>) + .next() { + if self.Selected() { + select.pick_option(self); + } + select.ask_for_reset(); + } + } } fn collect_text(element: &Element, value: &mut DOMString) { @@ -139,13 +150,7 @@ impl HTMLOptionElementMethods for HTMLOptionElement { fn SetSelected(&self, selected: bool) { self.dirtiness.set(true); self.selectedness.set(selected); - if let Some(select) = self.upcast::<Node>().ancestors() - .filter_map(Root::downcast::<HTMLSelectElement>).next() { - if selected { - select.pick_option(self); - } - select.ask_for_reset(); - } + self.pick_if_selected_and_reset(); } } @@ -198,14 +203,7 @@ impl VirtualMethods for HTMLOptionElement { self.upcast::<Element>().check_parent_disabled_state_for_option(); - if let Some(select) = self.upcast::<Node>().ancestors() - .filter_map(Root::downcast::<HTMLSelectElement>) - .next() { - if self.Selected() { - select.pick_option(self); - } - select.ask_for_reset(); - } + self.pick_if_selected_and_reset(); } fn unbind_from_tree(&self, tree_in_doc: bool) { diff --git a/components/script/dom/htmlselectelement.rs b/components/script/dom/htmlselectelement.rs index 4fd69b390db..04a3d174108 100644 --- a/components/script/dom/htmlselectelement.rs +++ b/components/script/dom/htmlselectelement.rs @@ -70,13 +70,12 @@ impl HTMLSelectElement { } } - match last_selected { - Some(last_selected) => last_selected.set_selectedness(true), - None => { - if self.display_size() == 1 { - if let Some(first_enabled) = first_enabled { - first_enabled.set_selectedness(true); - } + if let Some(last_selected) = last_selected { + last_selected.set_selectedness(true); + } else { + if self.display_size() == 1 { + if let Some(first_enabled) = first_enabled { + first_enabled.set_selectedness(true); } } } |