https://bugs.kde.org/show_bug.cgi?id=398615

Anton Anikin <an...@anikin.xyz> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|CONFIRMED                   |RESOLVED
      Latest Commit|                            |https://commits.kde.org/kde
                   |                            |velop/f856a9a63910a7e9f2fbc
                   |                            |bcd63f85100599805ae
         Resolution|---                         |FIXED

--- Comment #2 from Anton Anikin <an...@anikin.xyz> ---
Git commit f856a9a63910a7e9f2fbcbcd63f85100599805ae by Anton Anikin.
Committed on 15/09/2018 at 00:26.
Pushed by antonanikin into branch 'master'.

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.

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

M  +35   -26   plugins/standardoutputview/outputwidget.cpp
M  +5    -4    plugins/standardoutputview/outputwidget.h

https://commits.kde.org/kdevelop/f856a9a63910a7e9f2fbcbcd63f85100599805ae

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to