Skip to content
Commit f856a9a6 authored by Anton Anikin's avatar Anton Anikin
Browse files

Fix segfaults in OutputWidget

Summary:
This patch fixes regressions provided by D14931.

Steps to reproduce (my system is neon/bionic with Qt 5.11.1 and KDevelop/master):

1) Start KDevelop and load some project
2) Start project build
3) Close KDevelop
4) Segfault happens

Main problems:

1) Incorrect signal processing. `OutputWidget::updateFilter()` slot is called from parent's destructor when `m_tabwidget`/`m_stackwidget` is deleted so we have destroyed `m_views` hash and segfault as a result.

2) Incorrect `QSharedPointer` usage. All handled objects have `QWidget` as a parent so we have double-free problem and and segfault as a result.

BUG: 398615

Test Plan: Tested on different output widgets (`KDevelop::IOutputView::OneView/HistoryView/MultipleView`) with no segfaults. All our `QTreeView`/`QSortFilterProxyModel` objects are deleted (no memory leaks).

Reviewers: #kdevelop, kossebau

Reviewed By: #kdevelop, kossebau

Subscribers: kfunk, kossebau, vkorneev, kdevelop-devel

Tags: #kdevelop

Differential Revision: https://phabricator.kde.org/D15326
parent 3a9bcdbf
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment