]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/ConfigMonitor: use MConfig(map&&)
authorKefu Chai <kchai@redhat.com>
Fri, 22 Mar 2019 03:53:04 +0000 (11:53 +0800)
committerKefu Chai <kchai@redhat.com>
Fri, 22 Mar 2019 05:03:38 +0000 (13:03 +0800)
less memcpy this way.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/messages/MConfig.h
src/mon/ConfigMonitor.cc

index 28a1c45d84e86fcebb22c424986e2fbf70c563d7..ca0543a9c7dbfab81d0db9120f9a854c51e62c31 100644 (file)
@@ -18,7 +18,10 @@ public:
   MConfig() : MessageInstance(MSG_CONFIG, HEAD_VERSION, COMPAT_VERSION) { }
   MConfig(const std::map<std::string,std::string,std::less<>>& c)
     : MessageInstance(MSG_CONFIG, HEAD_VERSION, COMPAT_VERSION),
-      config(c) {}
+      config{c} {}
+  MConfig(std::map<std::string,std::string,std::less<>>&& c)
+    : MessageInstance(MSG_CONFIG, HEAD_VERSION, COMPAT_VERSION),
+      config{std::move(c)} {}
 
   std::string_view get_type_name() const override {
     return "config";
index 2f519def0ed2cabf9e69dce156e06b1ffc3a5a15..f1b23cbb09f278c30c52e862ec38e29419a6ec39 100644 (file)
@@ -424,7 +424,7 @@ void ConfigMonitor::handle_get_config(MonOpRequestRef op)
     osdmap.crush.get(),
     m->device_class);
   dout(20) << " config is " << out << dendl;
-  m->get_connection()->send_message(new MConfig(out));
+  m->get_connection()->send_message(new MConfig{std::move(out)});
 }
 
 bool ConfigMonitor::prepare_update(MonOpRequestRef op)