sc/inc/columnspanset.hxx        |    4 +++-
 sc/source/core/data/bcaslot.cxx |   13 +++++--------
 sc/source/core/inc/bcaslot.hxx  |    2 +-
 3 files changed, 9 insertions(+), 10 deletions(-)

New commits:
commit dbae39115963f63be1befe407ff9ed8c1c4a9b62
Author:     Noel Grandin <noelgran...@gmail.com>
AuthorDate: Sat Sep 4 20:55:29 2021 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Sun Sep 5 14:56:21 2021 +0200

    no need to allocate ColumnSpanSet with unique_ptr
    
    Change-Id: If3aaa2a4bc556dad41f56054890dc07f96d42dda
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121651
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/sc/inc/columnspanset.hxx b/sc/inc/columnspanset.hxx
index a5fed2d3f25a..926f0520e8a1 100644
--- a/sc/inc/columnspanset.hxx
+++ b/sc/inc/columnspanset.hxx
@@ -85,7 +85,9 @@ public:
 
     ColumnSpanSet();
     ColumnSpanSet(const ColumnSpanSet&) = delete;
-    const ColumnSpanSet& operator=(const ColumnSpanSet&) = delete;
+    ColumnSpanSet& operator=(const ColumnSpanSet&) = delete;
+    ColumnSpanSet(ColumnSpanSet&&) = default;
+    ColumnSpanSet& operator=(ColumnSpanSet&&) = default;
     ~ColumnSpanSet();
 
     void set(const ScDocument& rDoc, SCTAB nTab, SCCOL nCol, SCROW nRow, bool 
bVal);
diff --git a/sc/source/core/data/bcaslot.cxx b/sc/source/core/data/bcaslot.cxx
index bbca9dda93ae..9a9940445b7a 100644
--- a/sc/source/core/data/bcaslot.cxx
+++ b/sc/source/core/data/bcaslot.cxx
@@ -1077,12 +1077,11 @@ void ScBroadcastAreaSlotMachine::InsertBulkGroupArea( 
ScBroadcastArea* pArea, co
     if (it == m_BulkGroupAreas.end() || m_BulkGroupAreas.key_comp()(pArea, 
it->first))
     {
         // Insert a new one.
-        it = m_BulkGroupAreas.insert(it, std::make_pair(pArea, 
std::make_unique<sc::ColumnSpanSet>()));
+        it = m_BulkGroupAreas.insert(it, std::make_pair(pArea, 
sc::ColumnSpanSet()));
     }
 
-    sc::ColumnSpanSet *const pSet = it->second.get();
-    assert(pSet);
-    pSet->set(*pDoc, rRange, true);
+    sc::ColumnSpanSet& rSet = it->second;
+    rSet.set(*pDoc, rRange, true);
 }
 
 bool ScBroadcastAreaSlotMachine::BulkBroadcastGroupAreas( SfxHintId nHintId )
@@ -1093,7 +1092,7 @@ bool ScBroadcastAreaSlotMachine::BulkBroadcastGroupAreas( 
SfxHintId nHintId )
     sc::BulkDataHint aHint( *pDoc, nHintId);
 
     bool bBroadcasted = false;
-    for (const auto& [pArea, rxSpans] : m_BulkGroupAreas)
+    for (const auto& [pArea, rSpans] : m_BulkGroupAreas)
     {
         assert(pArea);
         SvtBroadcaster& rBC = pArea->GetBroadcaster();
@@ -1105,9 +1104,7 @@ bool ScBroadcastAreaSlotMachine::BulkBroadcastGroupAreas( 
SfxHintId nHintId )
         }
         else
         {
-            const sc::ColumnSpanSet *const pSpans = rxSpans.get();
-            assert(pSpans);
-            aHint.setSpans(pSpans);
+            aHint.setSpans(&rSpans);
             rBC.Broadcast(aHint);
             bBroadcasted = true;
         }
diff --git a/sc/source/core/inc/bcaslot.hxx b/sc/source/core/inc/bcaslot.hxx
index 2c85229b1feb..56d49e698835 100644
--- a/sc/source/core/inc/bcaslot.hxx
+++ b/sc/source/core/inc/bcaslot.hxx
@@ -245,7 +245,7 @@ public:
 class  ScBroadcastAreaSlotMachine
 {
 private:
-    typedef std::map<ScBroadcastArea*, std::unique_ptr<sc::ColumnSpanSet>> 
BulkGroupAreasType;
+    typedef std::map<ScBroadcastArea*, sc::ColumnSpanSet> BulkGroupAreasType;
 
     /**
         Slot offset arrangement of columns and rows, once per sheet.

Reply via email to