summaryrefslogtreecommitdiff
path: root/chart2
diff options
context:
space:
mode:
authorAshod Nakashian <ashod.nakashian@collabora.co.uk>2019-12-11 18:19:43 -0500
committerMichael Meeks <michael.meeks@collabora.com>2020-05-16 19:23:40 +0100
commit8a1abb99996df357ea806248f6cc9e0ab476d4c1 (patch)
treea1c4a84cb5e053df94aae1e4713f6dd4e81908c1 /chart2
parent59d56949c6bb847e398489af00639f5144c288ff (diff)
chart2: clear listener parents in dispose
Change-Id: Icdab125589ab0f55255f683a1ea39e036de661b1 Reviewed-on: https://gerrit.libreoffice.org/84997 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Ashod Nakashian <ashnakash@gmail.com>
Diffstat (limited to 'chart2')
-rw-r--r--chart2/source/controller/main/ChartWindow.cxx1
-rw-r--r--chart2/source/controller/sidebar/ChartSidebarModifyListener.cxx7
-rw-r--r--chart2/source/controller/sidebar/ChartSidebarSelectionListener.cxx7
3 files changed, 14 insertions, 1 deletions
diff --git a/chart2/source/controller/main/ChartWindow.cxx b/chart2/source/controller/main/ChartWindow.cxx
index 2a3bd54a85e6..0971fd079ca1 100644
--- a/chart2/source/controller/main/ChartWindow.cxx
+++ b/chart2/source/controller/main/ChartWindow.cxx
@@ -74,6 +74,7 @@ ChartWindow::~ChartWindow()
void ChartWindow::dispose()
{
+ m_pWindowController = nullptr;
m_pViewShellWindow.clear();
vcl::Window::dispose();
}
diff --git a/chart2/source/controller/sidebar/ChartSidebarModifyListener.cxx b/chart2/source/controller/sidebar/ChartSidebarModifyListener.cxx
index b000e55c5aa6..0fa0b793b5b6 100644
--- a/chart2/source/controller/sidebar/ChartSidebarModifyListener.cxx
+++ b/chart2/source/controller/sidebar/ChartSidebarModifyListener.cxx
@@ -27,12 +27,17 @@ ChartSidebarModifyListener::~ChartSidebarModifyListener()
void ChartSidebarModifyListener::modified(const css::lang::EventObject& /*rEvent*/)
{
- mpParent->updateData();
+ if (mpParent)
+ mpParent->updateData();
}
void ChartSidebarModifyListener::disposing(const css::lang::EventObject& /*rEvent*/)
{
+ if (!mpParent)
+ return;
+
mpParent->modelInvalid();
+ mpParent = nullptr;
}
} }
diff --git a/chart2/source/controller/sidebar/ChartSidebarSelectionListener.cxx b/chart2/source/controller/sidebar/ChartSidebarSelectionListener.cxx
index e037fc39aa5f..e7d74c656a55 100644
--- a/chart2/source/controller/sidebar/ChartSidebarSelectionListener.cxx
+++ b/chart2/source/controller/sidebar/ChartSidebarSelectionListener.cxx
@@ -41,6 +41,9 @@ ChartSidebarSelectionListener::~ChartSidebarSelectionListener()
void ChartSidebarSelectionListener::selectionChanged(const css::lang::EventObject& rEvent)
{
+ if (!mpParent)
+ return;
+
bool bCorrectObjectSelected = false;
css::uno::Reference<css::frame::XController> xController(rEvent.Source, css::uno::UNO_QUERY);
@@ -66,6 +69,10 @@ void ChartSidebarSelectionListener::selectionChanged(const css::lang::EventObjec
void ChartSidebarSelectionListener::disposing(const css::lang::EventObject& /*rEvent*/)
{
+ if (!mpParent)
+ return;
+
+ mpParent = nullptr;
}
void ChartSidebarSelectionListener::setAcceptedTypes(const std::vector<ObjectType>& aTypes)