nepomuk-core bug patched

This commit is contained in:
abveritas 2013-02-09 01:27:51 +00:00
parent 72d9fc5a66
commit afdf2fa2c3
2 changed files with 109 additions and 4 deletions

View File

@ -1,7 +1,7 @@
#
# KDE SC Packages for Chakra, part of chakra-project.org
#
# maintainer (x86_64): Manuel Tortosa <manutortosa[at]chakra-project[dot]org>
# maintainer: Manuel Tortosa <manutortosa[at]chakra-project[dot]org>
# include global config
source ../_buildscripts/${current_repo}-${_arch}-cfg.conf
@ -9,7 +9,7 @@ source ../_buildscripts/${current_repo}-${_arch}-cfg.conf
pkgname="nepomuk-core"
arch=('x86_64')
pkgver=${_kdever}
pkgrel=1
pkgrel=2
pkgdesc="The core Nepomuk system"
url="http://www.kde.org"
license=('GPL' 'LGPL' 'FDL')
@ -17,11 +17,14 @@ options=('docs' '!splithdr' 'splitdbg' 'log')
depends=("kdelibs>=${_kdever}" 'poppler-qt' 'ffmpeg')
makedepends=('pkg-config' 'cmake' 'automoc4' 'doxygen')
source=($_mirror/${pkgname}-$_kdever.tar.xz)
md5sums=(`grep ${pkgname}-$_kdever.tar.xz ../kde-sc.md5 | cut -d" " -f1`)
source=($_mirror/${pkgname}-$_kdever.tar.xz
'basicindexingqueue.diff')
md5sums=(`grep ${pkgname}-$_kdever.tar.xz ../kde-sc.md5 | cut -d" " -f1`
'2199b16711cf1c5f6c16e64d740dca50')
build() {
cd ${pkgname}-${pkgver}
patch -p1 -i ${srcdir}/basicindexingqueue.diff
rm -rf build
mkdir -p build && cd build

View File

@ -0,0 +1,102 @@
commit b651f9231ac30072418bb06d602951f0f05da22c
Author: Vishesh Handa <me@vhanda.in>
Date: Sat Feb 9 02:28:33 2013 +0530
Revert "BasicIndexingQueue: Use stacks instead of queues"
This reverts commit 2f33141aa6716550e38b11ec9a0b000dd74eea79.
The commit breaks recursive indexing. Doh!
BUG: 314559
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;