filter/source/msfilter/svdfppt.cxx  |    6 +++---
 include/filter/msfilter/svdfppt.hxx |    4 ++--
 sd/source/filter/ppt/pptin.cxx      |    2 +-
 3 files changed, 6 insertions(+), 6 deletions(-)

New commits:
commit db0175bf3a4da8aec0e3607731b464c1ce91ee1d
Author:     Noel Grandin <[email protected]>
AuthorDate: Tue Mar 7 10:14:23 2023 +0200
Commit:     Noel Grandin <[email protected]>
CommitDate: Tue Mar 7 11:24:47 2023 +0000

    no need to allocate these separately
    
    they are all one or two words in size
    
    Change-Id: I44d60e9fca03ce6709551a660661dd2a6778fd7e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148377
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <[email protected]>

diff --git a/filter/source/msfilter/svdfppt.cxx 
b/filter/source/msfilter/svdfppt.cxx
index cb6381fb6fd3..faded37d12e2 100644
--- a/filter/source/msfilter/svdfppt.cxx
+++ b/filter/source/msfilter/svdfppt.cxx
@@ -846,7 +846,7 @@ rtl::Reference<SdrObject> SdrEscherImport::ProcessObj( 
SvStream& rSt, DffObjData
                 aTextObj.SetVertical( bVerticalText );
                 if ( pRet )
                 {
-                    bool bDeleteSource = aTextObj.GetOEPlaceHolderAtom() != 
nullptr;
+                    bool bDeleteSource = 
aTextObj.GetOEPlaceHolderAtom().has_value();
                     if ( bDeleteSource  && dynamic_cast<const SdrGrafObj* 
>(pRet.get()) ==  nullptr     // we are not allowed to get
                             && dynamic_cast<const SdrObjGroup* >(pRet.get()) 
==  nullptr                // grouped placeholder objects
                                 && dynamic_cast<const SdrOle2Obj* 
>(pRet.get()) ==  nullptr )
@@ -6481,8 +6481,8 @@ PPTTextObj::PPTTextObj( SvStream& rIn, 
SdrPowerPointImport& rSdrPowerPointImport
         DffRecordHeader aPlaceHolderAtomHd;
         if ( SvxMSDffManager::SeekToRec( rIn, PPT_PST_OEPlaceholderAtom, 
aClientDataContainerHd.GetRecEndFilePos(), &aPlaceHolderAtomHd ) )
         {
-            mxImplTextObj->mpPlaceHolderAtom.reset( new PptOEPlaceholderAtom );
-            ReadPptOEPlaceholderAtom( rIn, *( mxImplTextObj->mpPlaceHolderAtom 
) );
+            mxImplTextObj->moPlaceHolderAtom.emplace();
+            ReadPptOEPlaceholderAtom( rIn, *( mxImplTextObj->moPlaceHolderAtom 
) );
         }
         rIn.Seek( nOldPos );
         DffRecordHeader aProgTagHd;
diff --git a/include/filter/msfilter/svdfppt.hxx 
b/include/filter/msfilter/svdfppt.hxx
index 9c515615e0af..0fad50bf993f 100644
--- a/include/filter/msfilter/svdfppt.hxx
+++ b/include/filter/msfilter/svdfppt.hxx
@@ -1202,7 +1202,7 @@ struct ImplPPTTextObj final : public 
salhelper::SimpleReferenceObject
 {
     sal_uInt32                  mnShapeId;
     sal_uInt32                  mnShapeMaster;
-    std::unique_ptr<PptOEPlaceholderAtom> mpPlaceHolderAtom;
+    std::optional<PptOEPlaceholderAtom> moPlaceHolderAtom;
     TSS_Type                    mnInstance;
     TSS_Type                    mnDestinationInstance;
     MSO_SPT                     meShapeType;
@@ -1256,7 +1256,7 @@ public:
     void                    SetDestinationInstance( TSS_Type nInstance )
                             { mxImplTextObj->mnDestinationInstance = 
nInstance; }
 
-    PptOEPlaceholderAtom*   GetOEPlaceHolderAtom() const { return 
mxImplTextObj->mpPlaceHolderAtom.get(); }
+    const std::optional<PptOEPlaceholderAtom> & GetOEPlaceHolderAtom() const { 
return mxImplTextObj->moPlaceHolderAtom; }
     sal_uInt32              GetTextFlags() const { return 
mxImplTextObj->mnTextFlags; }
     void                    SetVertical( bool bVertical )
                             {
diff --git a/sd/source/filter/ppt/pptin.cxx b/sd/source/filter/ppt/pptin.cxx
index 8f022c606764..0cdc7f8fb59b 100644
--- a/sd/source/filter/ppt/pptin.cxx
+++ b/sd/source/filter/ppt/pptin.cxx
@@ -2201,7 +2201,7 @@ SdrObject* ImplSdPPTImport::ApplyTextObj( PPTTextObj* 
pTextObj, SdrTextObj* pObj
     ppStyleSheetAry = nullptr;
 
     PresObjKind ePresKind = PresObjKind::NONE;
-    PptOEPlaceholderAtom* pPlaceHolder = pTextObj->GetOEPlaceHolderAtom();
+    const std::optional<PptOEPlaceholderAtom>& pPlaceHolder = 
pTextObj->GetOEPlaceHolderAtom();
     OUString aPresentationText;
     if ( pPlaceHolder )
     {

Reply via email to