<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="http://git.reviewboard.kde.org/r/103247/">http://git.reviewboard.kde.org/r/103247/</a>
</td>
</tr>
</table>
<br />
<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This review has been submitted with commit a4a4679d0e82d88392c2b6d9259ed441921914c4 by Aaron Seigo to branch master.</pre>
<br />
<p>- Commit</p>
<br />
<p>On November 26th, 2011, 3:43 p.m., Jonathan Marten wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/media/rb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
<tr>
<td>
<div>Review request for Plasma.</div>
<div>By Jonathan Marten.</div>
<p style="color: grey;"><i>Updated Nov. 26, 2011, 3:43 p.m.</i></p>
<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;">The referenced bug describes a Plasma crash caused by a TaskSource (used by the "tasks" data engine) retaining a pointer to a Task. When its associated window is closed, the Task is deleted but somehow the TaskSource is not. This causes a dangling pointer crash when the TaskSource next gets the currentDesktopChanged() signal (and presumably also currentActivityChanged() if activities are in use).
The source should get deleted in DataEngine::removeSource() via deleteLater(). This does not seem to work - if a single shot timer is used instead (as also in commits 0f40b577 and 52783c6c), the TaskSource gets deleted correctly and the crash does not happen.
(This also resulted in a TaskSource memory leak).</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;">Verified that the TaskSource destructor is never called by adding a kDebug() there.
Built kdelibs and kdeworkspace with this change, used for day-to-day work (when the crash used to happen quite regularly) and with the crash scenario described in the bug. The TaskSource destructor is called as expected, and the crash does not happen.</pre>
</td>
</tr>
</table>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>
<a href="http://bugs.kde.org/show_bug.cgi?id=286353">286353</a>
</div>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>plasma/dataengine.cpp <span style="color: grey">(c33b103)</span></li>
</ul>
<p><a href="http://git.reviewboard.kde.org/r/103247/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>