Mercurial > octave
changeset 32225:fe19c03876a1
gui: Check if pointers are valid before dereferencing them.
* libgui/src/octave-qobject.cc (~base_qobject): Check if objects referred to by
QPointer are still valid before calling deleteLater.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Tue, 01 Aug 2023 19:43:19 +0200 |
parents | 592adc6b8901 |
children | 1ce9acf56351 |
files | libgui/src/octave-qobject.cc |
diffstat | 1 files changed, 18 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/libgui/src/octave-qobject.cc Tue Aug 01 13:17:41 2023 -0400 +++ b/libgui/src/octave-qobject.cc Tue Aug 01 19:43:19 2023 +0200 @@ -362,14 +362,22 @@ m_community_news->close (); } - 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 (); + if (m_terminal_widget) + m_terminal_widget->deleteLater (); + if (m_documentation_widget) + m_documentation_widget->deleteLater (); + if (m_file_browser_widget) + m_file_browser_widget->deleteLater (); + if (m_history_widget) + m_history_widget->deleteLater (); + if (m_workspace_widget) + m_workspace_widget->deleteLater (); + if (m_editor_widget) + m_editor_widget->deleteLater (); + if (m_variable_editor_widget) + m_variable_editor_widget->deleteLater (); + if (m_community_news) + m_community_news->deleteLater (); delete m_interpreter_qobj; delete m_qsci_tr; @@ -377,7 +385,8 @@ delete m_qt_tr; delete m_workspace_model; - m_main_window->deleteLater (); + if (m_main_window) + m_main_window->deleteLater (); delete m_qapplication;