lmi-commits
[Top][All Lists]
Advanced

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

[lmi-commits] [lmi] master 4c21bf7 6/6: Replace shared_ptr with unique_p


From: Greg Chicares
Subject: [lmi-commits] [lmi] master 4c21bf7 6/6: Replace shared_ptr with unique_ptr
Date: Tue, 16 Oct 2018 09:19:10 -0400 (EDT)

branch: master
commit 4c21bf7c272d1ace6f2c45e40cebf127c2c62703
Author: Gregory W. Chicares <address@hidden>
Commit: Gregory W. Chicares <address@hidden>

    Replace shared_ptr with unique_ptr
---
 emit_ledger.hpp            |  6 +++---
 group_quote_pdf_gen.cpp    |  2 +-
 group_quote_pdf_gen.hpp    |  6 +++---
 group_quote_pdf_gen_wx.cpp | 13 ++++++-------
 4 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/emit_ledger.hpp b/emit_ledger.hpp
index d04d98e..e1f90fb 100644
--- a/emit_ledger.hpp
+++ b/emit_ledger.hpp
@@ -24,14 +24,14 @@
 
 #include "config.hpp"
 
+#include "group_quote_pdf_gen.hpp"      // [required for unique_ptr<>]
 #include "mc_enum_type_enums.hpp"       // enum mcenum_emission
 #include "so_attributes.hpp"
 
 #include <boost/filesystem/path.hpp>
 
-#include <memory>                       // shared_ptr
+#include <memory>                       // unique_ptr
 
-class group_quote_pdf_generator;
 class Ledger;
 
 /// Emit a group of ledgers in various guises.
@@ -62,7 +62,7 @@ class LMI_SO ledger_emitter final
     fs::path case_filepath_group_quote_;
 
     // Used only if emission_ includes mce_emit_group_quote; empty otherwise.
-    std::shared_ptr<group_quote_pdf_generator> group_quote_pdf_gen_;
+    std::unique_ptr<group_quote_pdf_generator> group_quote_pdf_gen_;
 };
 
 double LMI_SO emit_ledger
diff --git a/group_quote_pdf_gen.cpp b/group_quote_pdf_gen.cpp
index b3f9249..f233c9c 100644
--- a/group_quote_pdf_gen.cpp
+++ b/group_quote_pdf_gen.cpp
@@ -40,7 +40,7 @@ bool group_quote_pdf_generator::set_creator(creator_type f)
     return true;
 }
 
-std::shared_ptr<group_quote_pdf_generator> group_quote_pdf_generator::create()
+std::unique_ptr<group_quote_pdf_generator> group_quote_pdf_generator::create()
 {
     return group_quote_pdf_generator_create_callback()();
 }
diff --git a/group_quote_pdf_gen.hpp b/group_quote_pdf_gen.hpp
index 10d5a4d..39e7850 100644
--- a/group_quote_pdf_gen.hpp
+++ b/group_quote_pdf_gen.hpp
@@ -26,7 +26,7 @@
 
 #include "so_attributes.hpp"
 
-#include <memory>                       // shared_ptr
+#include <memory>                       // unique_ptr
 #include <string>
 
 class Ledger;
@@ -42,10 +42,10 @@ class Ledger;
 class LMI_SO group_quote_pdf_generator
 {
   public:
-    typedef std::shared_ptr<group_quote_pdf_generator> (*creator_type)();
+    typedef std::unique_ptr<group_quote_pdf_generator> (*creator_type)();
 
     static bool set_creator(creator_type);
-    static std::shared_ptr<group_quote_pdf_generator> create();
+    static std::unique_ptr<group_quote_pdf_generator> create();
 
     virtual ~group_quote_pdf_generator() = default;
 
diff --git a/group_quote_pdf_gen_wx.cpp b/group_quote_pdf_gen_wx.cpp
index b6eec87..1d56f14 100644
--- a/group_quote_pdf_gen_wx.cpp
+++ b/group_quote_pdf_gen_wx.cpp
@@ -218,11 +218,13 @@ class group_quote_pdf_generator_wx
     :public group_quote_pdf_generator
 {
   public:
-    static std::shared_ptr<group_quote_pdf_generator> do_create()
+    // do_create() requires a public ctor; that's harmless because
+    // this is inside an unnamed namespace.
+    group_quote_pdf_generator_wx() = default;
+
+    static std::unique_ptr<group_quote_pdf_generator> do_create()
         {
-        return std::shared_ptr<group_quote_pdf_generator>
-            (new group_quote_pdf_generator_wx()
-            );
+        return std::make_unique<group_quote_pdf_generator_wx>();
         }
 
     void add_ledger(Ledger const& ledger) override;
@@ -233,9 +235,6 @@ class group_quote_pdf_generator_wx
     // preferences.
     static int const vert_skip = 12;
 
-    // Ctor is private as it is only used by do_create().
-    group_quote_pdf_generator_wx() = default;
-
     // Compute the number of pages needed by the table rows in the output given
     // the space remaining on the first page, the heights of the header, one
     // table row and the footer and the last row position.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]