From 4bf87b4f4dd51561c23206c5f4a076d05286c037 Mon Sep 17 00:00:00 2001 From: Kefu Chai Date: Fri, 22 Mar 2019 11:53:04 +0800 Subject: [PATCH] mon/ConfigMonitor: use MConfig(map&&) less memcpy this way. Signed-off-by: Kefu Chai --- src/messages/MConfig.h | 5 ++++- src/mon/ConfigMonitor.cc | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/messages/MConfig.h b/src/messages/MConfig.h index 28a1c45d84e86..ca0543a9c7dbf 100644 --- a/src/messages/MConfig.h +++ b/src/messages/MConfig.h @@ -18,7 +18,10 @@ public: MConfig() : MessageInstance(MSG_CONFIG, HEAD_VERSION, COMPAT_VERSION) { } MConfig(const std::map>& c) : MessageInstance(MSG_CONFIG, HEAD_VERSION, COMPAT_VERSION), - config(c) {} + config{c} {} + MConfig(std::map>&& c) + : MessageInstance(MSG_CONFIG, HEAD_VERSION, COMPAT_VERSION), + config{std::move(c)} {} std::string_view get_type_name() const override { return "config"; diff --git a/src/mon/ConfigMonitor.cc b/src/mon/ConfigMonitor.cc index 2f519def0ed2c..f1b23cbb09f27 100644 --- a/src/mon/ConfigMonitor.cc +++ b/src/mon/ConfigMonitor.cc @@ -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) -- 2.39.5