chart2/source/controller/main/ChartWindow.cxx                      |    1 +
 chart2/source/controller/sidebar/ChartSidebarModifyListener.cxx    |    7 
++++++-
 chart2/source/controller/sidebar/ChartSidebarSelectionListener.cxx |    7 
+++++++
 3 files changed, 14 insertions(+), 1 deletion(-)

New commits:
commit d4c52ebce80e6ea9dbfa0ca47b50272fab71c546
Author:     Ashod Nakashian <ashod.nakash...@collabora.co.uk>
AuthorDate: Wed Dec 11 18:19:43 2019 -0500
Commit:     Ashod Nakashian <ashnak...@gmail.com>
CommitDate: Thu Dec 12 01:12:45 2019 +0100

    chart2: clear listener parents in dispose
    
    Change-Id: Icdab125589ab0f55255f683a1ea39e036de661b1
    Reviewed-on: https://gerrit.libreoffice.org/84997
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>
    Reviewed-by: Ashod Nakashian <ashnak...@gmail.com>

diff --git a/chart2/source/controller/main/ChartWindow.cxx 
b/chart2/source/controller/main/ChartWindow.cxx
index 57f245fe8db4..41e2664d1e9d 100644
--- a/chart2/source/controller/main/ChartWindow.cxx
+++ b/chart2/source/controller/main/ChartWindow.cxx
@@ -75,6 +75,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 19f4335e0b49..65d7bc9ce350 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,7 +69,11 @@ void ChartSidebarSelectionListener::selectionChanged(const 
css::lang::EventObjec
 
 void ChartSidebarSelectionListener::disposing(const css::lang::EventObject& 
/*rEvent*/)
 {
+    if (!mpParent)
+        return;
+
     mpParent->SelectionInvalid();
+    mpParent = nullptr;
 }
 
 void ChartSidebarSelectionListener::setAcceptedTypes(const 
std::vector<ObjectType>& aTypes)
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to