aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDongie Agnir <dongie.agnir@gmail.com>2015-10-27 15:20:35 -1000
committerDongie Agnir <dongie.agnir@gmail.com>2015-10-27 15:20:35 -1000
commit4849033297815625939d2f7d8f68a14adfaa5477 (patch)
tree257899f5371560ff2bd4800cbd2ed1fa4750d6f0
parent92e008307fe810ff9762d98b261e88f2040d1d5c (diff)
downloadservo-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.rs28
-rw-r--r--components/script/dom/htmlselectelement.rs13
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);
}
}
}