[glom] LayoutItem: Use std::unique_ptr<> for m_positions.



commit 604bf501ea5e9b6bf833c440c07963927bcf59c6
Author: Murray Cumming <murrayc murrayc com>
Date:   Thu Feb 4 22:35:08 2016 +0100

    LayoutItem: Use std::unique_ptr<> for m_positions.

 glom/libglom/data_structure/layout/layoutitem.cc |   16 +++++-----------
 glom/libglom/data_structure/layout/layoutitem.h  |    2 +-
 2 files changed, 6 insertions(+), 12 deletions(-)
---
diff --git a/glom/libglom/data_structure/layout/layoutitem.cc 
b/glom/libglom/data_structure/layout/layoutitem.cc
index a6ffa02..97e81fb 100644
--- a/glom/libglom/data_structure/layout/layoutitem.cc
+++ b/glom/libglom/data_structure/layout/layoutitem.cc
@@ -64,8 +64,7 @@ bool LayoutItem::PrintLayoutPosition::operator==(const LayoutItem::PrintLayoutPo
 
 LayoutItem::LayoutItem()
 : m_editable(true),
-  m_display_width(0),
-  m_positions(0)
+  m_display_width(0)
 {
   m_translatable_item_type = enumTranslatableItemType::LAYOUT_ITEM;
 }
@@ -73,16 +72,14 @@ LayoutItem::LayoutItem()
 LayoutItem::LayoutItem(const LayoutItem& src)
 : TranslatableItem(src),
   m_editable(src.m_editable),
-  m_display_width(src.m_display_width),
-  m_positions(0)
+  m_display_width(src.m_display_width)
 {
   if(src.m_positions)
-    m_positions = new PrintLayoutPosition(*(src.m_positions));
+    m_positions = std::make_unique<PrintLayoutPosition>(*(src.m_positions));
 }
 
 LayoutItem::~LayoutItem()
 {
-  delete m_positions;
 }
 
 LayoutItem& LayoutItem::operator=(const LayoutItem& src)
@@ -95,11 +92,8 @@ LayoutItem& LayoutItem::operator=(const LayoutItem& src)
   m_editable = src.m_editable;
   m_display_width = src.m_display_width;
 
-  delete m_positions;
-  m_positions = 0;
-
   if(src.m_positions)
-    m_positions = new PrintLayoutPosition(*(src.m_positions));
+    m_positions = std::make_unique<PrintLayoutPosition>(*(src.m_positions));
 
   return *this;
 }
@@ -161,7 +155,7 @@ void LayoutItem::set_display_width(guint value)
 void LayoutItem::instantiate_positions() const
 {
   if(!m_positions)
-    m_positions = new PrintLayoutPosition();
+    m_positions = std::make_unique<PrintLayoutPosition>();
 }
 
 void LayoutItem::get_print_layout_position(double& x, double& y, double& width, double& height) const
diff --git a/glom/libglom/data_structure/layout/layoutitem.h b/glom/libglom/data_structure/layout/layoutitem.h
index fcae596..15424f9 100644
--- a/glom/libglom/data_structure/layout/layoutitem.h
+++ b/glom/libglom/data_structure/layout/layoutitem.h
@@ -110,7 +110,7 @@ private:
     bool m_split_across_pages;
   };
   
-  mutable PrintLayoutPosition* m_positions;
+  mutable std::unique_ptr<PrintLayoutPosition> m_positions;
 };
 
 } //namespace Glom


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