<table><tr><td style="">antonanikin created this revision.<br />antonanikin added a reviewer: KDevelop.<br />Herald added a project: KDevelop.<br />antonanikin requested review of this revision.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D15326">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>This patch fixes regressions provided by <a href="https://phabricator.kde.org/D14931" style="background-color: #e7e7e7;
          border-color: #e7e7e7;
          border-radius: 3px;
          padding: 0 4px;
          font-weight: bold;
          color: black;text-decoration: line-through;">D14931</a>.</p>

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

<ol class="remarkup-list">
<li class="remarkup-list-item">Start KDevelop and load some project</li>
<li class="remarkup-list-item">Start project build</li>
<li class="remarkup-list-item">Close KDevelop</li>
<li class="remarkup-list-item">On exit segfault happens</li>
</ol>

<p>Main problems:</p>

<ol class="remarkup-list">
<li class="remarkup-list-item">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.</li>
</ol>

<ol class="remarkup-list" start="2">
<li class="remarkup-list-item">Incorrect QSharedPointer usage. All handled objects have QWidget as a parent so we have double-free problem and and segfault as a result.</li>
</ol></div></div><br /><div><strong>TEST PLAN</strong><div><p>Tested on different output widgets (KDevelop::IOutputView::OneView/HistoryView/MultipleView) with no segfaults. All our views/proxies objects are deleted (no memory leaks).</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R32 KDevelop</div></div></div><br /><div><strong>BRANCH</strong><div><div>master</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D15326">https://phabricator.kde.org/D15326</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>plugins/standardoutputview/outputwidget.cpp<br />
plugins/standardoutputview/outputwidget.h</div></div></div><br /><div><strong>To: </strong>antonanikin, KDevelop<br /><strong>Cc: </strong>kdevelop-devel, antismap, iodelay, vbspam, geetamc, Pilzschaf, akshaydeo, surgenight, arrowd<br /></div>