changeset 32222:4e73ee829e04

fix crash on exit with Qt 6 * octave-qobject.cc (~base_qobject): do not delete QPointers, but apply deleteLater on the objects they are pointing to, use deleteLater also for the bare pointer to the main window
author Torsten Lilge <ttl-octave@mailbox.org>
date Sat, 29 Jul 2023 21:37:35 +0200
parents e0dbf8def91c
children 592adc6b8901
files libgui/src/octave-qobject.cc
diffstat 1 files changed, 9 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/libgui/src/octave-qobject.cc	Sat Jul 29 13:42:02 2023 +0200
+++ b/libgui/src/octave-qobject.cc	Sat Jul 29 21:37:35 2023 +0200
@@ -362,16 +362,14 @@
         m_community_news->close ();
     }
 
-  delete m_terminal_widget;
-  delete m_documentation_widget;
-  delete m_file_browser_widget;
-  delete m_history_widget;
-  delete m_workspace_widget;
-  if (m_editor_widget)
-    delete m_editor_widget;
-  delete m_variable_editor_widget;
-  if (m_community_news)
-    delete m_community_news;
+  m_terminal_widget.data ()->deleteLater ();
+  m_documentation_widget.data ()->deleteLater ();
+  m_file_browser_widget.data ()->deleteLater ();
+  m_history_widget.data ()->deleteLater ();
+  m_workspace_widget.data ()->deleteLater ();
+  m_editor_widget.data ()->deleteLater ();
+  m_variable_editor_widget.data ()->deleteLater ();
+  m_community_news.data ()->deleteLater ();
 
   delete m_interpreter_qobj;
   delete m_qsci_tr;
@@ -379,8 +377,7 @@
   delete m_qt_tr;
   delete m_workspace_model;
 
-  if (m_main_window)
-    delete m_main_window;
+  m_main_window->deleteLater ();
 
   delete m_qapplication;