----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: http://svn.reviewboard.kde.org/r/6022/ -----------------------------------------------------------
(Updated 2010-12-06 09:43:30.877370) Review request for kdelibs and Kevin Ottens. Changes ------- Added a Q_ASSERT as requested by Kevin. The assert will trigger if the job is in autodelete mode and has been deleted by a slot. Adapted the test case to only check in non-autodelete mode. Summary (updated) ------- If someone calls "delete job" on a slot connected to the KJob::result() signal, KJob crashes because the job does not exist anymore when execution comes back to KJob::emitResult(). I added a guard to prevent that. An alternative would be to call deleteLater() before emitting the signals but I was afraid it would cause trouble if slots connected to the emitted signals used event loops. This addresses bug 241562. https://bugs.kde.org/show_bug.cgi?id=241562 Diffs (updated) ----- trunk/KDE/kdelibs/kdecore/jobs/kjob.cpp 1203507 trunk/KDE/kdelibs/kdecore/tests/kjobtest.h 1203507 trunk/KDE/kdelibs/kdecore/tests/kjobtest.cpp 1203507 Diff: http://svn.reviewboard.kde.org/r/6022/diff Testing ------- Wrote a unit-test to demonstrate the problem. This also helps with bug #241562 although I have another request prepared to hopefully definitely nail it down. Thanks, Aurélien