include/svx/svdpage.hxx       |    6 +++---
 svx/source/svdraw/svdpage.cxx |   41 +++++++++++++++++++++--------------------
 2 files changed, 24 insertions(+), 23 deletions(-)

New commits:
commit f9dde340ff99f55ce0035f7f5a5c66e423c73b50
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Mon Jun 2 08:02:08 2025 +0200
Commit:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
CommitDate: Mon Jun 2 08:02:08 2025 +0200

    svx: store a ref to SdrPage, not a pointer in SdrPageProperties
    
    The constructor already takes a reference to SdrPage, but for some
    reason we store a pointer and then later we check if the pointer
    is not nullptr in some cases, which shouldn't be required. This
    changes the the pointer to reference and it simplifies the code a
    bit.
    
    Change-Id: Ib49f514d95e52a078eb55f08bfaaa70fecbea083

diff --git a/include/svx/svdpage.hxx b/include/svx/svdpage.hxx
index 72c0c4a11ae4..67ef7e9ccfc2 100644
--- a/include/svx/svdpage.hxx
+++ b/include/svx/svdpage.hxx
@@ -326,10 +326,10 @@ class SVXCORE_DLLPUBLIC SdrPageProperties final : public 
SfxListener, public svl
 {
 private:
     // data
-    SdrPage*                mpSdrPage;
-    SfxStyleSheet*          mpStyleSheet;
+    SdrPage& mrSdrPage;
+    SfxStyleSheet* mpStyleSheet;
     std::shared_ptr<model::Theme> mpTheme;
-    SfxItemSet              maProperties;
+    SfxItemSet maProperties;
 
     // internal helpers
     void ImpRemoveStyleSheet();
diff --git a/svx/source/svdraw/svdpage.cxx b/svx/source/svdraw/svdpage.cxx
index 6ca2cac9eeef..37f9c1739219 100644
--- a/svx/source/svdraw/svdpage.cxx
+++ b/svx/source/svdraw/svdpage.cxx
@@ -1197,7 +1197,10 @@ void SdrPageProperties::ImpAddStyleSheet(SfxStyleSheet& 
rNewStyleSheet)
     }
 }
 
-static void ImpPageChange(SdrPage& rSdrPage)
+namespace
+{
+
+void ImpPageChange(SdrPage& rSdrPage)
 {
     rSdrPage.ActionChanged();
     rSdrPage.getSdrModelFromSdrPage().SetChanged();
@@ -1205,14 +1208,16 @@ static void ImpPageChange(SdrPage& rSdrPage)
     rSdrPage.getSdrModelFromSdrPage().Broadcast(aHint);
 }
 
+} // end anonymous namespace
+
 SdrPageProperties::SdrPageProperties(SdrPage& rSdrPage)
-    : mpSdrPage(&rSdrPage)
+    : mrSdrPage(rSdrPage)
     , mpStyleSheet(nullptr)
     , maProperties(
-        mpSdrPage->getSdrModelFromSdrPage().GetItemPool(),
+        mrSdrPage.getSdrModelFromSdrPage().GetItemPool(),
         svl::Items<XATTR_FILL_FIRST, XATTR_FILL_LAST>)
 {
-    if (!rSdrPage.IsMasterPage())
+    if (!mrSdrPage.IsMasterPage())
     {
         maProperties.Put(XFillStyleItem(drawing::FillStyle_NONE));
     }
@@ -1230,7 +1235,7 @@ void SdrPageProperties::Notify(SfxBroadcaster& /*rBC*/, 
const SfxHint& rHint)
         case SfxHintId::DataChanged :
             {
                 // notify change, broadcast
-                ImpPageChange(*mpSdrPage);
+                ImpPageChange(mrSdrPage);
                 break;
             }
         case SfxHintId::Dying :
@@ -1245,29 +1250,28 @@ void SdrPageProperties::Notify(SfxBroadcaster& /*rBC*/, 
const SfxHint& rHint)
 
 bool SdrPageProperties::isUsedByModel() const
 {
-    assert(mpSdrPage);
-    return mpSdrPage->IsInserted();
+    return mrSdrPage.IsInserted();
 }
 
 
 void SdrPageProperties::PutItemSet(const SfxItemSet& rSet)
 {
-    OSL_ENSURE(!mpSdrPage->IsMasterPage(), "Item set at MasterPage Attributes 
(!)");
+    OSL_ENSURE(!mrSdrPage.IsMasterPage(), "Item set at MasterPage Attributes 
(!)");
     maProperties.Put(rSet);
-    ImpPageChange(*mpSdrPage);
+    ImpPageChange(mrSdrPage);
 }
 
 void SdrPageProperties::PutItem(const SfxPoolItem& rItem)
 {
-    OSL_ENSURE(!mpSdrPage->IsMasterPage(), "Item set at MasterPage Attributes 
(!)");
+    OSL_ENSURE(!mrSdrPage.IsMasterPage(), "Item set at MasterPage Attributes 
(!)");
     maProperties.Put(rItem);
-    ImpPageChange(*mpSdrPage);
+    ImpPageChange(mrSdrPage);
 }
 
 void SdrPageProperties::ClearItem(const sal_uInt16 nWhich)
 {
     maProperties.ClearItem(nWhich);
-    ImpPageChange(*mpSdrPage);
+    ImpPageChange(mrSdrPage);
 }
 
 void SdrPageProperties::SetStyleSheet(SfxStyleSheet* pStyleSheet)
@@ -1281,24 +1285,21 @@ void SdrPageProperties::SetStyleSheet(SfxStyleSheet* 
pStyleSheet)
         ImpRemoveStyleSheet();
     }
 
-    ImpPageChange(*mpSdrPage);
+    ImpPageChange(mrSdrPage);
 }
 
 void SdrPageProperties::setTheme(std::shared_ptr<model::Theme> const& pTheme)
 {
-    if (!mpSdrPage)
-        return;
-
     // Only set the theme on a master page, else set it on the model
 
-    if (mpSdrPage->IsMasterPage())
+    if (mrSdrPage.IsMasterPage())
     {
         if (mpTheme != pTheme)
             mpTheme = pTheme;
     }
     else
     {
-        mpSdrPage->getSdrModelFromSdrPage().setTheme(pTheme);
+        mrSdrPage.getSdrModelFromSdrPage().setTheme(pTheme);
     }
 }
 
@@ -1308,8 +1309,8 @@ std::shared_ptr<model::Theme> const& 
SdrPageProperties::getTheme() const
     if (mpTheme)
         return mpTheme;
     // else the model theme
-    else if (mpSdrPage)
-        return mpSdrPage->getSdrModelFromSdrPage().getTheme();
+    else
+        return mrSdrPage.getSdrModelFromSdrPage().getTheme();
     // else return empty shared_ptr
     return mpTheme;
 }

Reply via email to