From 04784540efe156398eee4fba535f5a24b8bd649e Mon Sep 17 00:00:00 2001 From: Yuri Kunde Schlesner Date: Fri, 18 Apr 2014 03:39:25 -0300 Subject: [PATCH] Remove redundant variable in LruCache::put --- src/libcollections/lru_cache.rs | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/libcollections/lru_cache.rs b/src/libcollections/lru_cache.rs index 87b1fee1d27d..84553782104d 100644 --- a/src/libcollections/lru_cache.rs +++ b/src/libcollections/lru_cache.rs @@ -114,10 +114,8 @@ impl LruCache { /// Put a key-value pair into cache. pub fn put(&mut self, k: K, v: V) { - let mut key_existed = false; let (node_ptr, node_opt) = match self.map.find_mut(&KeyRef{k: &k}) { Some(node) => { - key_existed = true; node.value = Some(v); let node_ptr: *mut LruEntry = &mut **node; (node_ptr, None) @@ -128,15 +126,18 @@ impl LruCache { (node_ptr, Some(node)) } }; - if key_existed { - self.detach(node_ptr); - self.attach(node_ptr); - } else { - let keyref = unsafe { (*node_ptr).key.as_ref().unwrap() }; - self.map.swap(KeyRef{k: keyref}, node_opt.unwrap()); - self.attach(node_ptr); - if self.len() > self.capacity() { - self.remove_lru(); + match node_opt { + None => { + self.detach(node_ptr); + self.attach(node_ptr); + } + Some(node) => { + let keyref = unsafe { (*node_ptr).key.as_ref().unwrap() }; + self.map.swap(KeyRef{k: keyref}, node); + self.attach(node_ptr); + if self.len() > self.capacity() { + self.remove_lru(); + } } } }