<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://git.reviewboard.kde.org/r/118816/">https://git.reviewboard.kde.org/r/118816/</a>
     </td>
    </tr>
   </table>
   <br />





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On June 18th, 2014, 1:52 p.m. MDT, <b>Dominik Haumann</b> wrote:</p>
 <blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
  <pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Still crashes Kate on close or session switch:

#6  0x00007f8f1c217d71 in QList<QWidget*>::QList (this=0x7fff3f64f950, l=...) at /home/dh/kde/kf5/src/qt5/qtbase/src/corelib/tools/qlist.h:733
#7  0x00007f8f1c2140df in Konsole::ViewContainer::views (this=0x0) at /home/dh/kde/kf5/src/kde/applications/konsole/src/ViewContainer.cpp:192
#8  0x00007f8f1c21d759 in Konsole::ViewManager::updateDetachViewState (this=0x1cf2d50) at /home/dh/kde/kf5/src/kde/applications/konsole/src/ViewManager.cpp:276
#9  0x00007f8f1c21fb09 in Konsole::ViewManager::viewDestroyed (this=0x1cf2d50, view=0x1d0d400) at /home/dh/kde/kf5/src/kde/applications/konsole/src/ViewManager.cpp:772
#10 0x00007f8f1c228a53 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QWidget*>, void, void (Konsole::ViewManager::*)(QWidget*)>::call (f=(void (Konsole::ViewManager::*)(Konsole::ViewManager * const, QWidget *)) 0x7f8f1c21fa10 <Konsole::ViewManager::viewDestroyed(QWidget*)>, o=0x1cf2d50, arg=0x7fff3f64fc70) at /home/dh/kde/kf5/src/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:508
#11 0x00007f8f1c227e92 in QtPrivate::FunctionPointer<void (Konsole::ViewManager::*)(QWidget*)>::call<QtPrivate::List<QWidget*>, void> (f=(void (Konsole::ViewManager::*)(Konsole::ViewManager * const, QWidget *)) 0x7f8f1c21fa10 <Konsole::ViewManager::viewDestroyed(QWidget*)>, o=0x1cf2d50, arg=0x7fff3f64fc70) at /home/dh/kde/kf5/src/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:527
#12 0x00007f8f1c22707b in QtPrivate::QSlotObject<void (Konsole::ViewManager::*)(QWidget*), QtPrivate::List<QWidget*>, void>::impl (which=1, this_=0x1d0cd00, r=0x1cf2d50, a=0x7fff3f64fc70, ret=0x0) at /home/dh/kde/kf5/src/qt5/qtbase/src/corelib/kernel/qobject_impl.h:149
#13 0x00007f8f3d9f0f95 in QtPrivate::QSlotObjectBase::call (this=0x1d0cd00, r=0x1cf2d50, a=0x7fff3f64fc70) at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:132
#14 0x00007f8f3d9ee147 in QMetaObject::activate (sender=0x1d05800, signalOffset=3, local_signal_index=7, argv=0x7fff3f64fc70) at kernel/qobject.cpp:3668
#15 0x00007f8f3d9eda62 in QMetaObject::activate (sender=0x1d05800, m=0x7f8f1c4a5f80 <Konsole::ViewContainer::staticMetaObject>, local_signal_index=7, argv=0x7fff3f64fc70) at kernel/qobject.cpp:3548
#16 0x00007f8f1c23b84d in Konsole::ViewContainer::viewRemoved (this=0x1d05800, _t1=0x1d0d400) at /home/dh/kde/kf5/build/kde/applications/konsole/src/moc_ViewContainer.cpp:296
#17 0x00007f8f1c213f7e in Konsole::ViewContainer::viewDestroyed (this=0x1d05800, object=0x1d0d400) at /home/dh/kde/kf5/src/kde/applications/konsole/src/ViewContainer.cpp:170
#18 0x00007f8f1c21a2a4 in QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QObject*>, void, void (Konsole::ViewContainer::*)(QObject*)>::call (f=(void (Konsole::ViewContainer::*)(Konsole::ViewContainer * const, QObject *)) 0x7f8f1c213eb4 <Konsole::ViewContainer::viewDestroyed(QObject*)>, o=0x1d05800, arg=0x7fff3f64ff70) at /home/dh/kde/kf5/src/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:508
#19 0x00007f8f1c219ea2 in QtPrivate::FunctionPointer<void (Konsole::ViewContainer::*)(QObject*)>::call<QtPrivate::List<QObject*>, void> (f=(void (Konsole::ViewContainer::*)(Konsole::ViewContainer * const, QObject *)) 0x7f8f1c213eb4 <Konsole::ViewContainer::viewDestroyed(QObject*)>, o=0x1d05800, arg=0x7fff3f64ff70) at /home/dh/kde/kf5/src/qt5/qtbase/src/corelib/kernel/qobjectdefs_impl.h:527
#20 0x00007f8f1c219531 in QtPrivate::QSlotObject<void (Konsole::ViewContainer::*)(QObject*), QtPrivate::List<QObject*>, void>::impl (which=1, this_=0x1d459f0, r=0x1d05800, a=0x7fff3f64ff70, ret=0x0) at /home/dh/kde/kf5/src/qt5/qtbase/src/corelib/kernel/qobject_impl.h:149
#21 0x00007f8f3d9f0f95 in QtPrivate::QSlotObjectBase::call (this=0x1d459f0, r=0x1d05800, a=0x7fff3f64ff70) at ../../include/QtCore/../../src/corelib/kernel/qobject_impl.h:132
#22 0x00007f8f3d9ee147 in QMetaObject::activate (sender=0x1d0d400, signalOffset=0, local_signal_index=0, argv=0x7fff3f64ff70) at kernel/qobject.cpp:3668
#23 0x00007f8f3d9eda62 in QMetaObject::activate (sender=0x1d0d400, m=0x7f8f3de8bc20 <QObject::staticMetaObject>, local_signal_index=0, argv=0x7fff3f64ff70) at kernel/qobject.cpp:3548
#24 0x00007f8f3d9f0d73 in QObject::destroyed (this=0x1d0d400, _t1=0x1d0d400) at .moc/moc_qobject.cpp:202
#25 0x00007f8f3ef31932 in QWidget::~QWidget (this=0x1d0d400, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1460
#26 0x00007f8f1c204a83 in Konsole::TerminalDisplay::~TerminalDisplay (this=0x1d0d400, __in_chrg=<optimized out>) at /home/dh/kde/kf5/src/kde/applications/konsole/src/TerminalDisplay.cpp:416
#27 0x00007f8f1c204abc in Konsole::TerminalDisplay::~TerminalDisplay (this=0x1d0d400, __in_chrg=<optimized out>) at /home/dh/kde/kf5/src/kde/applications/konsole/src/TerminalDisplay.cpp:426
#28 0x00007f8f3d9e8db8 in QObjectPrivate::deleteChildren (this=0x1d06080) at kernel/qobject.cpp:1935
#29 0x00007f8f3ef319ed in QWidget::~QWidget (this=0x1d01b20, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1489
#30 0x00007f8f3f06bef0 in QFrame::~QFrame (this=0x1d01b20, __in_chrg=<optimized out>) at widgets/qframe.cpp:217
#31 0x00007f8f3f0db6fc in QStackedWidget::~QStackedWidget (this=0x1d01b20, __in_chrg=<optimized out>) at widgets/qstackedwidget.cpp:149
#32 0x00007f8f3f0db732 in QStackedWidget::~QStackedWidget (this=0x1d01b20, __in_chrg=<optimized out>) at widgets/qstackedwidget.cpp:151
#33 0x00007f8f3d9e8db8 in QObjectPrivate::deleteChildren (this=0x1d05d20) at kernel/qobject.cpp:1935
#34 0x00007f8f3ef319ed in QWidget::~QWidget (this=0x1856cf0, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1489
#35 0x00007f8f3ef31b04 in QWidget::~QWidget (this=0x1856cf0, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1509
#36 0x00007f8f3d9e8db8 in QObjectPrivate::deleteChildren (this=0x1cf2f40) at kernel/qobject.cpp:1935
#37 0x00007f8f3ef319ed in QWidget::~QWidget (this=0x1cf2ef0, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1489
#38 0x00007f8f3f06bef0 in QFrame::~QFrame (this=0x1cf2ef0, __in_chrg=<optimized out>) at widgets/qframe.cpp:217
#39 0x00007f8f3f0d863e in QSplitter::~QSplitter (this=0x1cf2ef0, __in_chrg=<optimized out>) at widgets/qsplitter.cpp:968
#40 0x00007f8f1c229764 in Konsole::ViewSplitter::~ViewSplitter (this=0x1cf2ef0, __in_chrg=<optimized out>) at /home/dh/kde/kf5/src/kde/applications/konsole/src/ViewSplitter.cpp:39
#41 0x00007f8f1c22979c in Konsole::ViewSplitter::~ViewSplitter (this=0x1cf2ef0, __in_chrg=<optimized out>) at /home/dh/kde/kf5/src/kde/applications/konsole/src/ViewSplitter.cpp:44
#42 0x00007f8f43595b15 in KParts::Part::~Part (this=0x1ce80f0, __vtt_parm=0x7f8f1c6c4490 <VTT for Konsole::Part+16>, __in_chrg=<optimized out>) at /home/dh/kde/kf5/src/frameworks/kparts/src/part.cpp:65
#43 0x00007f8f43597c3e in KParts::ReadOnlyPart::~ReadOnlyPart (this=0x1ce80f0, __vtt_parm=0x7f8f1c6c4488 <VTT for Konsole::Part+8>, __in_chrg=<optimized out>) at /home/dh/kde/kf5/src/frameworks/kparts/src/readonlypart.cpp:51
#44 0x00007f8f1c4bad24 in Konsole::Part::~Part (this=0x1ce80f0, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/dh/kde/kf5/src/kde/applications/konsole/src/Part.cpp:95
#45 0x00007f8f1c4bad8c in Konsole::Part::~Part (this=0x1ce80f0, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/dh/kde/kf5/src/kde/applications/konsole/src/Part.cpp:98
#46 0x00007f8f3d9e8db8 in QObjectPrivate::deleteChildren (this=0x1626c20) at kernel/qobject.cpp:1935
#47 0x00007f8f3ef319ed in QWidget::~QWidget (this=0x16239a0, __in_chrg=<optimized out>) at kernel/qwidget.cpp:1489
#48 0x00007f8f1d7cc6b3 in KateConsole::~KateConsole (this=0x16239a0, __in_chrg=<optimized out>) at /home/dh/kde/kf5/src/kde/applications/kate/addons/konsole/kateconsole.cpp:151
#49 0x00007f8f1d7cc6fc in KateConsole::~KateConsole (this=0x16239a0, __in_chrg=<optimized out>) at /home/dh/kde/kf5/src/kde/applications/kate/addons/konsole/kateconsole.cpp:156
#50 0x00007f8f1d7cbd83 in KateKonsolePluginView::~KateKonsolePluginView (this=0x16237a0, __in_chrg=<optimized out>) at /home/dh/kde/kf5/src/kde/applications/kate/addons/konsole/kateconsole.cpp:109
#51 0x00007f8f1d7cbddc in KateKonsolePluginView::~KateKonsolePluginView (this=0x16237a0, __in_chrg=<optimized out>) at /home/dh/kde/kf5/src/kde/applications/kate/addons/konsole/kateconsole.cpp:111
#52 0x00007f8f43e75a71 in KatePluginManager::disablePluginGUI (this=0xe86150, item=0xe620d0, win=0x1247390) at /home/dh/kde/kf5/src/kde/applications/kate/kate/src/katepluginmanager.cpp:230
#53 0x00007f8f43e754bf in KatePluginManager::disableAllPluginsGUI (this=0xe86150, win=0x1247390) at /home/dh/kde/kf5/src/kde/applications/kate/kate/src/katepluginmanager.cpp:149
#54 0x00007f8f43e6a282 in KateMainWindow::~KateMainWindow (this=0x1247390, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/dh/kde/kf5/src/kde/applications/kate/kate/src/katemainwindow.cpp:227
#55 0x00007f8f43e6a3f4 in KateMainWindow::~KateMainWindow (this=0x1247390, __in_chrg=<optimized out>, __vtt_parm=<optimized out>) at /home/dh/kde/kf5/src/kde/applications/kate/kate/src/katemainwindow.cpp:236
</pre>
 </blockquote>







</blockquote>

<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Drat, I get that when I exit from one tab in yakuake now too :/</pre>
<br />










<p>- Jeremy</p>


<br />
<p>On June 18th, 2014, 1:24 p.m. MDT, Jeremy Whiting wrote:</p>








<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for KDE Base Apps and Eike Hein.</div>
<div>By Jeremy Whiting.</div>


<p style="color: grey;"><i>Updated June 18, 2014, 1:24 p.m.</i></p>









<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
konsole
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">When containers are destructed, they emit a signal that the splitter is connected to which removes and unregisters the container from the splitter.
A crash happens when the splitter is destroyed before the container, so a slot in a deleted splitter is called, tries to unregister the container, and segfaults.
I added a destructor to ViewSplitter which unregisters all it's containers, this fixes the crash here on closing of a tab in yakuake and on closing a tab in konsole.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Manual testing, it seems to work fine.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>src/ViewSplitter.h <span style="color: grey">(c1e4552)</span></li>

 <li>src/ViewSplitter.cpp <span style="color: grey">(bfc727e)</span></li>

 <li>src/ViewContainer.cpp <span style="color: grey">(79c24d5)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/118816/diff/" style="margin-left: 3em;">View Diff</a></p>







  </td>
 </tr>
</table>








  </div>
 </body>
</html>