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