diff options
author | bors-servo <release+servo@mozilla.com> | 2014-06-01 16:19:20 -0400 |
---|---|---|
committer | bors-servo <release+servo@mozilla.com> | 2014-06-01 16:19:20 -0400 |
commit | 59cef940e899a900b4601dbbc9b4d4bd96a96687 (patch) | |
tree | 85f486aa98ee2d65c57ce88c54890a22964d3359 /src/components/script/dom/bindings/js.rs | |
parent | 05acf4131713259d54750ea751f1619e5813ff29 (diff) | |
parent | 3819ebb7407af87052bdf04e26c887c6417dfef8 (diff) | |
download | servo-59cef940e899a900b4601dbbc9b4d4bd96a96687.tar.gz servo-59cef940e899a900b4601dbbc9b4d4bd96a96687.zip |
auto merge of #2535 : saneyuki/servo/mut, r=jdm
Related #2514
Diffstat (limited to 'src/components/script/dom/bindings/js.rs')
-rw-r--r-- | src/components/script/dom/bindings/js.rs | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/src/components/script/dom/bindings/js.rs b/src/components/script/dom/bindings/js.rs index c5d39959c8a..805adcf1ff3 100644 --- a/src/components/script/dom/bindings/js.rs +++ b/src/components/script/dom/bindings/js.rs @@ -260,20 +260,12 @@ impl<T: Reflectable> Assignable<T> for Temporary<T> { /// Assign an optional rootable value (either of JS<T> or Temporary<T>) to an optional /// field of a DOM type (ie. Option<JS<T>>) pub trait OptionalSettable<T> { - fn assign(&mut self, val: Option<T>); -} - -impl<T: Assignable<U>, U: Reflectable> OptionalSettable<T> for Option<JS<U>> { - fn assign(&mut self, val: Option<T>) { - *self = val.map(|val| unsafe { val.get_js() }); - } + fn assign(&self, val: Option<T>); } impl<T: Assignable<U>, U: Reflectable> OptionalSettable<T> for Cell<Option<JS<U>>> { - fn assign(&mut self, val: Option<T>) { - let mut item = self.get(); - item.assign(val); - self.set(item); + fn assign(&self, val: Option<T>) { + self.set(val.map(|val| unsafe { val.get_js() })); } } |