Use the entry API instead of find_or_insert.
This commit is contained in:
		| @@ -12,7 +12,7 @@ use std::mem::{transmute, transmute_copy}; | |||||||
| use std::raw::TraitObject; | use std::raw::TraitObject; | ||||||
| use std::str::{from_utf8, SendStr, Slice, Owned}; | use std::str::{from_utf8, SendStr, Slice, Owned}; | ||||||
| use std::string::raw; | use std::string::raw; | ||||||
| use std::collections::hashmap::{HashMap, Entries}; | use std::collections::hashmap::{HashMap, Entries, Occupied, Vacant}; | ||||||
|  |  | ||||||
| use uany::UncheckedAnyDowncast; | use uany::UncheckedAnyDowncast; | ||||||
| use typeable::Typeable; | use typeable::Typeable; | ||||||
| @@ -91,8 +91,12 @@ impl Headers { | |||||||
|                     let name = unsafe { |                     let name = unsafe { | ||||||
|                         raw::from_utf8(name) |                         raw::from_utf8(name) | ||||||
|                     }; |                     }; | ||||||
|                     let name = CaseInsensitive(Owned(name)); |  | ||||||
|                     let item = headers.data.find_or_insert(name, Raw(vec![])); |                     let item = match headers.data.entry(CaseInsensitive(Owned(name))) { | ||||||
|  |                         Vacant(entry) => entry.set(Raw(vec![])), | ||||||
|  |                         Occupied(entry) => entry.into_mut() | ||||||
|  |                     }; | ||||||
|  |  | ||||||
|                     match *item { |                     match *item { | ||||||
|                         Raw(ref mut raw) => raw.push(value), |                         Raw(ref mut raw) => raw.push(value), | ||||||
|                         // Unreachable |                         // Unreachable | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user