[gnote] Move semantics for addinmanager



commit e4554c9786c853f9f4ff57e3eac2f7e77b820708
Author: Aurimas Černius <aurisc4 gmail com>
Date:   Mon Feb 21 22:48:49 2022 +0200

    Move semantics for addinmanager

 src/addinmanager.cpp      | 15 ++++++---------
 src/addinmanager.hpp      |  6 +++---
 src/preferencesdialog.cpp |  4 ++--
 3 files changed, 11 insertions(+), 14 deletions(-)
---
diff --git a/src/addinmanager.cpp b/src/addinmanager.cpp
index b75b686c..0f4d3748 100644
--- a/src/addinmanager.cpp
+++ b/src/addinmanager.cpp
@@ -139,29 +139,26 @@ namespace {
     }
   }
 
-  void AddinManager::add_note_addin_info(const Glib::ustring & id,
-                                         const sharp::DynamicModule * dmod)
+  void AddinManager::add_note_addin_info(Glib::ustring && id, const sharp::DynamicModule * dmod)
   {
     {
-      const IdInfoMap::const_iterator iter
-                                        = m_note_addin_infos.find(id);
+      const IdInfoMap::const_iterator iter = m_note_addin_infos.find(id);
       if (m_note_addin_infos.end() != iter) {
         ERR_OUT(_("Note plugin info %s already present"), id.c_str());
         return;
       }
     }
 
-    sharp::IfaceFactoryBase * const f = dmod->query_interface(
-                                          NoteAddin::IFACE_NAME);
+    sharp::IfaceFactoryBase * const f = dmod->query_interface(NoteAddin::IFACE_NAME);
     if(!f) {
       ERR_OUT(_("%s does not implement %s"), id.c_str(), NoteAddin::IFACE_NAME);
       return;
     }
 
-    load_note_addin(id, f);
+    load_note_addin(std::move(id), f);
   }
 
-  void AddinManager::load_note_addin(const Glib::ustring & id, sharp::IfaceFactoryBase *const f)
+  void AddinManager::load_note_addin(Glib::ustring && id, sharp::IfaceFactoryBase *const f)
   {
     m_note_addin_infos.insert(std::make_pair(id, f));
     for(NoteAddinMap::iterator iter = m_note_addins.begin();
@@ -177,7 +174,7 @@ namespace {
       NoteAddin *const addin = dynamic_cast<NoteAddin *>((*f)());
       if(addin) {
        addin->initialize(m_gnote, note);
-       id_addin_map.insert(std::make_pair(id, addin));
+       id_addin_map.insert(std::make_pair(std::move(id), addin));
       }
     }
   }
diff --git a/src/addinmanager.hpp b/src/addinmanager.hpp
index b18ff45f..e135d37b 100644
--- a/src/addinmanager.hpp
+++ b/src/addinmanager.hpp
@@ -1,7 +1,7 @@
 /*
  * gnote
  *
- * Copyright (C) 2010,2012-2015,2017,2019-2020 Aurimas Cernius
+ * Copyright (C) 2010,2012-2015,2017,2019-2020,2022 Aurimas Cernius
  * Copyright (C) 2009 Debarshi Ray
  * Copyright (C) 2009 Hubert Figuiere
  *
@@ -54,7 +54,7 @@ public:
   AddinManager(IGnote & g, NoteManager & note_manager, Preferences & preferences, const Glib::ustring & 
conf_dir);
   ~AddinManager();
 
-  void add_note_addin_info(const Glib::ustring & id, const sharp::DynamicModule * dmod);
+  void add_note_addin_info(Glib::ustring && id, const sharp::DynamicModule * dmod);
   void erase_note_addin_info(const Glib::ustring & id);
 
   Glib::ustring & get_prefs_dir()
@@ -87,7 +87,7 @@ public:
 private:
   void load_addin_infos(const Glib::ustring & global_path, const Glib::ustring & local_path);
   void load_addin_infos(const Glib::ustring & path);
-  void load_note_addin(const Glib::ustring & id, sharp::IfaceFactoryBase *const f);
+  void load_note_addin(Glib::ustring && id, sharp::IfaceFactoryBase *const f);
   std::vector<Glib::ustring> get_enabled_addins() const;
   void initialize_sharp_addins();
   void add_module_addins(const Glib::ustring & mod_id, sharp::DynamicModule * dmod);
diff --git a/src/preferencesdialog.cpp b/src/preferencesdialog.cpp
index 6a4440ee..282844a2 100644
--- a/src/preferencesdialog.cpp
+++ b/src/preferencesdialog.cpp
@@ -1,7 +1,7 @@
 /*
  * gnote
  *
- * Copyright (C) 2010-2015,2017,2019-2021 Aurimas Cernius
+ * Copyright (C) 2010-2015,2017,2019-2022 Aurimas Cernius
  * Copyright (C) 2009 Debarshi Ray
  * Copyright (C) 2009 Hubert Figuiere
  *
@@ -184,7 +184,7 @@ namespace gnote {
 
     if (module->has_interface(NoteAddin::IFACE_NAME)) {
       if (enable)
-        m_addin_manager.add_note_addin_info(id, module);
+        m_addin_manager.add_note_addin_info(std::move(id), module);
       else
         m_addin_manager.erase_note_addin_info(id);
     }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]