Skip to content

Commit 0478454

Browse files
committed
Remove redundant variable in LruCache::put
1 parent 0c23140 commit 0478454

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

src/libcollections/lru_cache.rs

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,8 @@ impl<K: Hash + TotalEq, V> LruCache<K, V> {
114114

115115
/// Put a key-value pair into cache.
116116
pub fn put(&mut self, k: K, v: V) {
117-
let mut key_existed = false;
118117
let (node_ptr, node_opt) = match self.map.find_mut(&KeyRef{k: &k}) {
119118
Some(node) => {
120-
key_existed = true;
121119
node.value = Some(v);
122120
let node_ptr: *mut LruEntry<K, V> = &mut **node;
123121
(node_ptr, None)
@@ -128,15 +126,18 @@ impl<K: Hash + TotalEq, V> LruCache<K, V> {
128126
(node_ptr, Some(node))
129127
}
130128
};
131-
if key_existed {
132-
self.detach(node_ptr);
133-
self.attach(node_ptr);
134-
} else {
135-
let keyref = unsafe { (*node_ptr).key.as_ref().unwrap() };
136-
self.map.swap(KeyRef{k: keyref}, node_opt.unwrap());
137-
self.attach(node_ptr);
138-
if self.len() > self.capacity() {
139-
self.remove_lru();
129+
match node_opt {
130+
None => {
131+
self.detach(node_ptr);
132+
self.attach(node_ptr);
133+
}
134+
Some(node) => {
135+
let keyref = unsafe { (*node_ptr).key.as_ref().unwrap() };
136+
self.map.swap(KeyRef{k: keyref}, node);
137+
self.attach(node_ptr);
138+
if self.len() > self.capacity() {
139+
self.remove_lru();
140+
}
140141
}
141142
}
142143
}

0 commit comments

Comments
 (0)