diff options
| author | Frank Reininghaus <[email protected]> | 2014-05-13 18:42:05 +0200 |
|---|---|---|
| committer | Frank Reininghaus <[email protected]> | 2014-05-13 18:42:05 +0200 |
| commit | 4cf04b91dd8804f2536fc31ae2f1b486bfc8cf9c (patch) | |
| tree | 75aee505fe55fabedf33fa202cc4b4e4f6481a71 /src/kitemviews/private/kdirectorycontentscounter.cpp | |
| parent | 7e92abb4ea2c2b269d21973bc9f2e76da5fb9114 (diff) | |
| parent | 5780fab172e02c3dd44082aa10d37cd87a98e29b (diff) | |
Merge remote-tracking branch 'origin/master' into frameworks
Since the master branch had never been merged into frameworks since the
creation of the frameworks branch, I had to fix a couple of merge
conflicts and make another change in order to make it build - I hope I
did not get anything wrong.
We should probably merge master into frameworks on a regular basis from
now on.
CCMAIL:[email protected]
Conflicts:
dolphin/src/dolphinmainwindow.cpp
dolphin/src/search/dolphinfacetswidget.cpp
dolphin/src/statusbar/dolphinstatusbar.cpp
dolphin/src/views/dolphinview.cpp
Diffstat (limited to 'src/kitemviews/private/kdirectorycontentscounter.cpp')
| -rw-r--r-- | src/kitemviews/private/kdirectorycontentscounter.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/src/kitemviews/private/kdirectorycontentscounter.cpp b/src/kitemviews/private/kdirectorycontentscounter.cpp index 0e43dea2e..cd448e233 100644 --- a/src/kitemviews/private/kdirectorycontentscounter.cpp +++ b/src/kitemviews/private/kdirectorycontentscounter.cpp @@ -60,14 +60,23 @@ KDirectoryContentsCounter::~KDirectoryContentsCounter() { --m_workersCount; - if (m_workersCount == 0) { + if (m_workersCount > 0) { + // The worker thread will continue running. It could even be running + // a method of m_worker at the moment, so we delete it using + // deleteLater() to prevent a crash. + m_worker->deleteLater(); + } else { + // There are no remaining workers -> stop the worker thread. m_workerThread->quit(); m_workerThread->wait(); delete m_workerThread; m_workerThread = 0; - } - delete m_worker; + // The worker thread has finished running now, so it's safe to delete + // m_worker. deleteLater() would not work at all because the event loop + // which would deliver the event to m_worker is not running any more. + delete m_worker; + } } void KDirectoryContentsCounter::addDirectory(const QString& path) |
