Auto merge of #22103 - Eijebong:formdata, r=jdm

Use a BTreeMap to store formdata

I'm really unsure about the MallocSizeOf of BTreeMap as I took the same
code as for HashMap.

Fixes #13105
Fixes #21381

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22103)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2018-11-05 22:50:40 -05:00 committed by GitHub
commit c86b183d5d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 34 additions and 31 deletions

View file

@ -18,19 +18,19 @@ use dom::globalscope::GlobalScope;
use dom::htmlformelement::{HTMLFormElement, FormDatumValue, FormDatum};
use dom_struct::dom_struct;
use html5ever::LocalName;
use std::collections::HashMap;
use std::collections::hash_map::Entry::{Occupied, Vacant};
use std::collections::BTreeMap;
use std::collections::btree_map::Entry::{Occupied, Vacant};
use std::iter;
#[dom_struct]
pub struct FormData {
reflector_: Reflector,
data: DomRefCell<HashMap<LocalName, Vec<FormDatum>>>,
data: DomRefCell<BTreeMap<LocalName, Vec<FormDatum>>>,
}
impl FormData {
fn new_inherited(opt_form: Option<&HTMLFormElement>) -> FormData {
let mut hashmap: HashMap<LocalName, Vec<FormDatum>> = HashMap::new();
let mut hashmap: BTreeMap<LocalName, Vec<FormDatum>> = BTreeMap::new();
if let Some(form) = opt_form {
for datum in form.get_form_dataset(None) {