diff options
author | Jack Moffitt <jack@metajack.im> | 2014-11-05 12:33:11 -0700 |
---|---|---|
committer | Glenn Watson <gw@intuitionlibrary.com> | 2014-11-13 11:17:43 +1000 |
commit | d1b433a3b3bab353f320b2f39fa953ce326d2d55 (patch) | |
tree | d7a197abb65827b36c47e6b5c3adcce9071643d3 /components/script/dom/formdata.rs | |
parent | 26045d7fcbab8851fbefe2851cd904203f8fd8dd (diff) | |
download | servo-d1b433a3b3bab353f320b2f39fa953ce326d2d55.tar.gz servo-d1b433a3b3bab353f320b2f39fa953ce326d2d55.zip |
Rust upgrade to rustc hash b03a2755193cd756583bcf5831cf4545d75ecb8a
Diffstat (limited to 'components/script/dom/formdata.rs')
-rw-r--r-- | components/script/dom/formdata.rs | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/components/script/dom/formdata.rs b/components/script/dom/formdata.rs index 7642ebab0d4..9a9bac37f55 100644 --- a/components/script/dom/formdata.rs +++ b/components/script/dom/formdata.rs @@ -15,7 +15,8 @@ use dom::blob::Blob; use dom::file::File; use dom::htmlformelement::HTMLFormElement; use servo_util::str::DOMString; -use std::collections::hashmap::HashMap; +use std::collections::HashMap; +use std::collections::hash_map::{Occupied, Vacant}; #[deriving(Clone)] #[jstraceable] @@ -57,13 +58,21 @@ impl<'a> FormDataMethods for JSRef<'a, FormData> { #[allow(unrooted_must_root)] fn Append(self, name: DOMString, value: JSRef<Blob>, filename: Option<DOMString>) { let file = FileData(JS::from_rooted(self.get_file_from_blob(value, filename))); - self.data.borrow_mut().insert_or_update_with(name.clone(), vec!(file.clone()), - |_k, v| {v.push(file.clone());}); + let mut data = self.data.borrow_mut(); + match data.entry(name) { + Occupied(entry) => entry.into_mut().push(file), + Vacant(entry) => { + entry.set(vec!(file)); + } + } } fn Append_(self, name: DOMString, value: DOMString) { - self.data.borrow_mut().insert_or_update_with(name, vec!(StringData(value.clone())), - |_k, v| {v.push(StringData(value.clone()));}); + let mut data = self.data.borrow_mut(); + match data.entry(name) { + Occupied(entry) => entry.into_mut().push(StringData(value)), + Vacant (entry) => { entry.set(vec!(StringData(value))); }, + } } fn Delete(self, name: DOMString) { |