]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common/simple_cache.hpp: add std::move 9413/head
authorMichal Jarzabek <stiopa@gmail.com>
Tue, 31 May 2016 18:24:23 +0000 (19:24 +0100)
committerMichal Jarzabek <stiopa@gmail.com>
Tue, 31 May 2016 22:48:46 +0000 (23:48 +0100)
Signed-off-by: Michal Jarzabek <stiopa@gmail.com>
src/common/simple_cache.hpp

index 362763253becff3bf64ea1fbc4f914a6c6867ad8..d8653ece20e59900c6880a0b24950b0603be16e5 100644 (file)
@@ -37,8 +37,8 @@ class SimpleLRU {
     }
   }
 
-  void _add(K key, V value) {
-    lru.push_front(make_pair(key, value));
+  void _add(K key, V&& value) {
+    lru.emplace_front(key, std::move(value)); // can't move key because we access it below
     contents[key] = lru.begin();
     trim_cache();
   }
@@ -50,7 +50,7 @@ public:
 
   void pin(K key, V val) {
     Mutex::Locker l(lock);
-    pinned.insert(make_pair(key, val));
+    pinned.emplace(std::move(key), std::move(val));
   }
 
   void clear_pinned(K e) {
@@ -61,7 +61,7 @@ public:
       typename ceph::unordered_map<K, typename list<pair<K, V> >::iterator, H>::iterator iter =
         contents.find(i->first);
       if (iter == contents.end())
-       _add(i->first, i->second);
+       _add(i->first, std::move(i->second));
       else
        lru.splice(lru.begin(), lru, iter->second);
     }
@@ -102,7 +102,7 @@ public:
 
   void add(K key, V value) {
     Mutex::Locker l(lock);
-    _add(key, value);
+    _add(std::move(key), std::move(value));
   }
 };