Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:12.3
nepomuk-core
Revert-BasicIndexingQueue-Use-stacks-instead-of...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
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
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor