sw/source/core/layout/calcmove.cxx |    4 ++--
 sw/source/core/layout/flowfrm.cxx  |    6 ++++--
 2 files changed, 6 insertions(+), 4 deletions(-)

New commits:
commit aad712f6362378f19db2062f0499fd039c2f7114
Author:     Noel Grandin <noelgran...@gmail.com>
AuthorDate: Sun Sep 26 08:40:21 2021 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Sun Sep 26 13:31:13 2021 +0200

    no need to allocate these SwFrameDeleteGuard on the heap
    
    Change-Id: Ib8b2fe4ff1309c6fb11fa50ff24ea0dd63faf0e9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122617
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/sw/source/core/layout/calcmove.cxx 
b/sw/source/core/layout/calcmove.cxx
index f8ab0e2e29fc..98df857e3910 100644
--- a/sw/source/core/layout/calcmove.cxx
+++ b/sw/source/core/layout/calcmove.cxx
@@ -1240,7 +1240,7 @@ void SwContentFrame::MakeAll(vcl::RenderContext* 
/*pRenderContext*/)
         return;
     }
 
-    auto xDeleteGuard = std::make_unique<SwFrameDeleteGuard>(this);
+    std::optional<SwFrameDeleteGuard> oDeleteGuard(std::in_place, this);
     LockJoin();
     tools::Long nFormatCount = 0;
     // - loop prevention
@@ -1907,7 +1907,7 @@ void SwContentFrame::MakeAll(vcl::RenderContext* 
/*pRenderContext*/)
     pSaveFootnote.reset();
 
     UnlockJoin();
-    xDeleteGuard.reset();
+    oDeleteGuard.reset();
     if ( bMovedFwd || bMovedBwd )
         pNotify->SetInvaKeep();
     if ( bMovedFwd )
diff --git a/sw/source/core/layout/flowfrm.cxx 
b/sw/source/core/layout/flowfrm.cxx
index dd6872c1750f..c6b075e05e00 100644
--- a/sw/source/core/layout/flowfrm.cxx
+++ b/sw/source/core/layout/flowfrm.cxx
@@ -1971,7 +1971,9 @@ bool SwFlowFrame::MoveFwd( bool bMakePage, bool 
bPageBreak, bool bMoveAlways )
         }
     }
 
-    std::unique_ptr<SwFrameDeleteGuard> xDeleteGuard(bMakePage ? new 
SwFrameDeleteGuard(pOldBoss) : nullptr);
+    std::optional<SwFrameDeleteGuard> oDeleteGuard;
+    if (bMakePage)
+        oDeleteGuard.emplace(pOldBoss);
 
     bool bSamePage = true;
     SwLayoutFrame *pNewUpper =
@@ -2011,7 +2013,7 @@ bool SwFlowFrame::MoveFwd( bool bMakePage, bool 
bPageBreak, bool bMoveAlways )
         pOldBoss = pOldBoss->FindFootnoteBossFrame( true );
         SwPageFrame* pNewPage = pOldPage;
 
-        xDeleteGuard.reset();
+        oDeleteGuard.reset();
 
         // First, we move the footnotes.
         bool bFootnoteMoved = false;

Reply via email to