summaryrefslogtreecommitdiff
path: root/sdext/source
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2022-12-17 20:57:46 +0000
committerCaolán McNamara <caolanm@redhat.com>2022-12-17 21:51:42 +0000
commit4e0970bebd06ba988a59213b827a1c0a44c76ac2 (patch)
tree19ec9f2585d902c3043d33225ff1a980de14c4fa /sdext/source
parentf52118159e1e958177aa8080d9b43962d31bbdfd (diff)
cid#1517773 silence Wrapper object use after free
Change-Id: I6652bfd32eb604ebb2a5b7deb573d9c979ec6d5e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/144391 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sdext/source')
-rw-r--r--sdext/source/minimizer/optimizerdialog.cxx10
-rw-r--r--sdext/source/minimizer/optimizerdialog.hxx6
2 files changed, 11 insertions, 5 deletions
diff --git a/sdext/source/minimizer/optimizerdialog.cxx b/sdext/source/minimizer/optimizerdialog.cxx
index 351c98df6c41..68aaf2662fb5 100644
--- a/sdext/source/minimizer/optimizerdialog.cxx
+++ b/sdext/source/minimizer/optimizerdialog.cxx
@@ -61,6 +61,7 @@ IntroPage::IntroPage(weld::Container* pPage, OptimizerDialog& rOptimizerDialog)
, mxComboBox(m_xBuilder->weld_combo_box("LB_SETTINGS"))
, mxButton(m_xBuilder->weld_button("STR_REMOVE"))
{
+ rOptimizerDialog.SetIntroPage(this);
mxComboBox->connect_changed(LINK(this, IntroPage, ComboBoxActionPerformed));
mxButton->connect_clicked(LINK(this, IntroPage, ButtonActionPerformed));
}
@@ -83,6 +84,7 @@ SlidesPage::SlidesPage(weld::Container* pPage, OptimizerDialog& rOptimizerDialog
, mxComboBox(m_xBuilder->weld_combo_box("LB_SLIDES"))
, mxClearNodes(m_xBuilder->weld_check_button("STR_DELETE_NOTES_PAGES"))
{
+ rOptimizerDialog.SetSlidesPage(this);
mxMasterSlides->connect_toggled(LINK(this, SlidesPage, UnusedMasterPagesActionPerformed));
mxHiddenSlides->connect_toggled(LINK(this, SlidesPage, UnusedHiddenSlidesActionPerformed));
mxUnusedSlides->connect_toggled(LINK(this, SlidesPage, UnusedSlidesActionPerformed));
@@ -116,6 +118,7 @@ ImagesPage::ImagesPage(weld::Container* pPage, OptimizerDialog& rOptimizerDialog
, m_xRemoveCropArea(m_xBuilder->weld_check_button("STR_REMOVE_CROP_AREA"))
, m_xEmbedLinkedGraphics(m_xBuilder->weld_check_button("STR_EMBED_LINKED_GRAPHICS"))
{
+ rOptimizerDialog.SetImagesPage(this);
m_xRemoveCropArea->connect_toggled(LINK(this, ImagesPage, RemoveCropAreaActionPerformed));
m_xEmbedLinkedGraphics->connect_toggled(LINK(this, ImagesPage, EmbedLinkedGraphicsActionPerformed));
m_xResolution->connect_changed(LINK(this, ImagesPage, ComboBoxActionPerformed));
@@ -146,6 +149,7 @@ ObjectsPage::ObjectsPage(weld::Container* pPage, OptimizerDialog& rOptimizerDial
, m_xForeignOLEObjects(m_xBuilder->weld_radio_button("STR_ALIEN_OLE_OBJECTS_ONLY"))
, m_xLabel(m_xBuilder->weld_label("STR_OLE_OBJECTS_DESC"))
{
+ rOptimizerDialog.SetObjectsPage(this);
m_xCreateStaticImage->connect_toggled(LINK(this, ObjectsPage, OLEOptimizationActionPerformed));
m_xAllOLEObjects->connect_toggled(LINK(this, ObjectsPage, OLEActionPerformed));
m_xForeignOLEObjects->connect_toggled(LINK(this, ObjectsPage, OLEActionPerformed));
@@ -180,6 +184,7 @@ SummaryPage::SummaryPage(weld::Container* pPage, OptimizerDialog& rOptimizerDial
, m_xComboBox(m_xBuilder->weld_combo_box("MY_SETTINGS"))
, m_xSaveSettings(m_xBuilder->weld_check_button("STR_SAVE_SETTINGS"))
{
+ rOptimizerDialog.SetSummaryPage(this);
m_xApplyToCurrent->connect_toggled(LINK(this, SummaryPage, SaveAsNewActionPerformed));
m_xSaveToNew->connect_toggled(LINK(this, SummaryPage, SaveAsNewActionPerformed));
m_xSaveSettings->connect_toggled(LINK(this, SummaryPage, SaveSettingsActionPerformed));
@@ -316,23 +321,18 @@ std::unique_ptr<BuilderPage> OptimizerDialog::createPage(vcl::WizardTypes::Wizar
{
case ITEM_ID_INTRODUCTION:
xRet.reset(new IntroPage(pPageContainer, *this));
- mpPage0 = static_cast<IntroPage*>(xRet.get());
break;
case ITEM_ID_SLIDES:
xRet.reset(new SlidesPage(pPageContainer, *this));
- mpPage1 = static_cast<SlidesPage*>(xRet.get());
break;
case ITEM_ID_GRAPHIC_OPTIMIZATION:
xRet.reset(new ImagesPage(pPageContainer, *this));
- mpPage2 = static_cast<ImagesPage*>(xRet.get());
break;
case ITEM_ID_OLE_OPTIMIZATION:
xRet.reset(new ObjectsPage(pPageContainer, *this));
- mpPage3 = static_cast<ObjectsPage*>(xRet.get());
break;
case ITEM_ID_SUMMARY:
xRet.reset(new SummaryPage(pPageContainer, *this));
- mpPage4 = static_cast<SummaryPage*>(xRet.get());
break;
}
diff --git a/sdext/source/minimizer/optimizerdialog.hxx b/sdext/source/minimizer/optimizerdialog.hxx
index e36e5fe43262..88c01b54300b 100644
--- a/sdext/source/minimizer/optimizerdialog.hxx
+++ b/sdext/source/minimizer/optimizerdialog.hxx
@@ -231,6 +231,12 @@ public:
void UpdateControlStates( sal_Int16 nStep = -1 );
+ void SetIntroPage(IntroPage* pPage0) { mpPage0 = pPage0; }
+ void SetSlidesPage(SlidesPage* pPage1) { mpPage1 = pPage1; }
+ void SetImagesPage(ImagesPage* pPage2) { mpPage2 = pPage2; }
+ void SetObjectsPage(ObjectsPage* pPage3) { mpPage3 = pPage3; }
+ void SetSummaryPage(SummaryPage* pPage4) { mpPage4 = pPage4; }
+
css::uno::Reference< css::frame::XDispatch >& GetStatusDispatcher() { return mxStatusDispatcher; };
css::uno::Reference< css::frame::XFrame>& GetFrame() { return mxFrame; };
};