[packages/kde4-nepomuk-core] - rel 2; recursive indexing fix

arekm arekm at pld-linux.org
Sun Feb 10 07:46:25 CET 2013


commit e193a4e9938bd17b7ed9106d13f528f6f4a0e83e
Author: Arkadiusz Miśkiewicz <arekm at maven.pl>
Date:   Sun Feb 10 07:46:22 2013 +0100

    - rel 2; recursive indexing fix

 kde4-nepomuk-core.spec                |   4 +-
 nepomuk-core-recursive-indexing.patch | 102 ++++++++++++++++++++++++++++++++++
 2 files changed, 105 insertions(+), 1 deletion(-)
---
diff --git a/kde4-nepomuk-core.spec b/kde4-nepomuk-core.spec
index 888bbe6..3a91d76 100644
--- a/kde4-nepomuk-core.spec
+++ b/kde4-nepomuk-core.spec
@@ -6,12 +6,13 @@
 Summary:	Nepomuk Core utilities and libraries
 Name:		kde4-nepomuk-core
 Version:	4.10.0
-Release:	1
+Release:	2
 License:	LGPLv2 or LGPLv3
 Group:		X11/Applications
 URL:		http://www.kde.org/
 Source0:	ftp://ftp.kde.org/pub/kde/%{_state}/%{version}/src/%{orgname}-%{version}.tar.xz
 # Source0-md5:	8f9a7ae4c7e3231227b696154edb5bc0
+Patch0:		nepomuk-core-recursive-indexing.patch
 BuildRequires:	QtCore-devel >= %{qtver}
 BuildRequires:	acl-devel
 BuildRequires:	attr-devel
@@ -44,6 +45,7 @@ Nepomuk Core development files and libraries.
 
 %prep
 %setup -q -n %{orgname}-%{version}
+%patch0 -p1
 
 %build
 install -d build
diff --git a/nepomuk-core-recursive-indexing.patch b/nepomuk-core-recursive-indexing.patch
new file mode 100644
index 0000000..e7e9b72
--- /dev/null
+++ b/nepomuk-core-recursive-indexing.patch
@@ -0,0 +1,102 @@
+commit b651f9231ac30072418bb06d602951f0f05da22c
+Author: Vishesh Handa <me at 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;
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/kde4-nepomuk-core.git/commitdiff/e193a4e9938bd17b7ed9106d13f528f6f4a0e83e



More information about the pld-cvs-commit mailing list