File Revert-BasicIndexingQueue-Use-stacks-instead-of-queu.patch of Package nepomuk-core
From b651f9231ac30072418bb06d602951f0f05da22c Mon Sep 17 00:00:00 2001
From: Vishesh Handa <me@vhanda.in>
Date: Sat, 9 Feb 2013 02:28:33 +0530
Subject: [PATCH 1/1] Revert "BasicIndexingQueue: Use stacks instead of queues"
This reverts commit 2f33141aa6716550e38b11ec9a0b000dd74eea79.
The commit breaks recursive indexing. Doh!
BUG: 314559
---
services/fileindexer/basicindexingqueue.cpp | 18 ++++++------------
services/fileindexer/basicindexingqueue.h | 5 ++---
2 files changed, 8 insertions(+), 15 deletions(-)
diff --git a/services/fileindexer/basicindexingqueue.cpp b/services/fileindexer/basicindexingqueue.cpp
index a295330..b581786 100644
--- a/services/fileindexer/basicindexingqueue.cpp
+++ b/services/fileindexer/basicindexingqueue.cpp
@@ -54,14 +54,14 @@ void BasicIndexingQueue::clear()
void BasicIndexingQueue::clear(const QString& path)
{
- QMutableVectorIterator< QPair<QString, UpdateDirFlags> > it( m_paths );
+ QMutableListIterator< QPair<QString, UpdateDirFlags> > it( m_paths );
while( it.hasNext() ) {
it.next();
if( it.value().first.startsWith( path ) )
it.remove();
}
- QMutableVectorIterator< QPair<QDirIterator*, UpdateDirFlags> > iter( m_iterators );
+ QMutableListIterator< QPair<QDirIterator*, UpdateDirFlags> > iter( m_iterators );
while( iter.hasNext() ) {
QDirIterator* dirIter = iter.next().first;
@@ -100,7 +100,7 @@ void BasicIndexingQueue::enqueue(const QString& path, UpdateDirFlags flags)
{
kDebug() << path;
bool wasEmpty = m_paths.empty();
- m_paths.push( qMakePair( path, flags ) );
+ m_paths.enqueue( qMakePair( path, flags ) );
callForNextIteration();
if( wasEmpty )
@@ -120,12 +120,12 @@ void BasicIndexingQueue::processNextIteration()
processingFile = process( dirIt->next(), pair.second );
}
else {
- delete m_iterators.pop().first;
+ delete m_iterators.dequeue().first;
}
}
else if( !m_paths.isEmpty() ) {
- QPair< QString, UpdateDirFlags > pair = m_paths.pop();
+ QPair< QString, UpdateDirFlags > pair = m_paths.dequeue();
processingFile = process( pair.first, pair.second );
}
@@ -161,7 +161,7 @@ bool BasicIndexingQueue::process(const QString& path, UpdateDirFlags flags)
QDir::Filters dirFilter = QDir::NoDotAndDotDot|QDir::Readable|QDir::Files|QDir::Dirs;
QPair<QDirIterator*, UpdateDirFlags> pair = qMakePair( new QDirIterator( path, dirFilter ), flags );
- m_iterators.push( pair );
+ m_iterators.enqueue( pair );
}
}
else if( info.isFile() && (forced || indexingRequired) ) {
@@ -259,12 +259,6 @@ void BasicIndexingQueue::slotIndexingFinished(KJob* job)
emit endIndexingFile( url );
- // Give back the memory
- if( m_paths.isEmpty() )
- m_paths.clear();
- if( m_iterators.isEmpty() )
- m_iterators.clear();
-
// Continue the queue
finishIteration();
}
diff --git a/services/fileindexer/basicindexingqueue.h b/services/fileindexer/basicindexingqueue.h
index 29dd9fd..5d1c190 100644
--- a/services/fileindexer/basicindexingqueue.h
+++ b/services/fileindexer/basicindexingqueue.h
@@ -23,7 +23,6 @@
#include "indexingqueue.h"
#include <KJob>
-#include <QtCore/QStack>
namespace Nepomuk2 {
@@ -106,8 +105,8 @@ namespace Nepomuk2 {
*/
bool process(const QString& path, Nepomuk2::UpdateDirFlags flags);
- QStack< QPair<QString, UpdateDirFlags> > m_paths;
- QStack< QPair<QDirIterator*, UpdateDirFlags> > m_iterators;
+ QQueue< QPair<QString, UpdateDirFlags> > m_paths;
+ QQueue< QPair<QDirIterator*, UpdateDirFlags> > m_iterators;
QUrl m_currentUrl;
QString m_currentMimeType;
--
1.8.1.1