[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kservice] src: simplify code, reduce pointer dereferences, container-related improvements
From:       Nick Shaforostoff <shafff () ukr ! net>
Date:       2016-03-02 12:03:21
Message-ID: E1ab5Uv-0005QF-9e () scm ! kde ! org
[Download RAW message or body]

Git commit b9c8b1fadcbb742e6129b77f28336c223a18b424 by Nick Shaforostoff.
Committed on 02/03/2016 at 12:02.
Pushed by shaforo into branch 'master'.

simplify code, reduce pointer dereferences, container-related improvements

REVIEW: 127215

M  +2    -2    src/services/kservice.cpp
M  +1    -1    src/services/kservicetype.cpp
M  +4    -10   src/sycoca/kbuildmimetypefactory.cpp
M  +9    -13   src/sycoca/kbuildservicefactory.cpp
M  +32   -47   src/sycoca/kbuildsycoca.cpp
M  +1    -1    src/sycoca/kmimeassociations.cpp
M  +37   -41   src/sycoca/ksycocadict.cpp
M  +3    -6    src/sycoca/ksycocafactory.cpp
M  +1    -1    src/sycoca/ksycocautils_p.h

http://commits.kde.org/kservice/b9c8b1fadcbb742e6129b77f28336c223a18b424

diff --git a/src/services/kservice.cpp b/src/services/kservice.cpp
index c75bce2..6574367 100644
--- a/src/services/kservice.cpp
+++ b/src/services/kservice.cpp
@@ -198,7 +198,7 @@ void KServicePrivate::init(const KDesktopFile *config, KService \
*q)  lstServiceTypes += desktopGroup.readXdgListEntry("MimeType");
     entryMap.remove(QStringLiteral("MimeType"));
 
-    if (m_strType == QLatin1String("Application") && \
!lstServiceTypes.contains(QStringLiteral("Application"))) +    if (m_strType == \
QLatin1String("Application") && \
!lstServiceTypes.contains(QLatin1String("Application")))  // Applications implement \
the service type "Application" ;-)  {
         lstServiceTypes += QStringLiteral("Application");
@@ -230,7 +230,7 @@ void KServicePrivate::init(const KDesktopFile *config, KService \
                *q)
         m_serviceTypes.push_back(KService::ServiceTypeAndPreference(initialPreference, \
st));  }
 
-    if (entryMap.contains(QStringLiteral("Actions"))) {
+    if (entryMap.contains(QLatin1String("Actions"))) {
         parseActions(config, q);
     }
 
diff --git a/src/services/kservicetype.cpp b/src/services/kservicetype.cpp
index 2a73ccd..cdc17c3 100644
--- a/src/services/kservicetype.cpp
+++ b/src/services/kservicetype.cpp
@@ -99,7 +99,7 @@ KServiceTypePrivate::load(QDataStream &_str)
     QString dummy;
     _str >> m_strName >> dummy >> m_strComment >> m_mapProps >> m_mapPropDefs
                       >> b >> m_serviceOffersOffset;
-    m_bDerived = m_mapProps.contains(QStringLiteral("X-KDE-Derived"));
+    m_bDerived = m_mapProps.contains(QLatin1String("X-KDE-Derived"));
 }
 
 void
diff --git a/src/sycoca/kbuildmimetypefactory.cpp \
b/src/sycoca/kbuildmimetypefactory.cpp index 340f76a..e23aec5 100644
--- a/src/sycoca/kbuildmimetypefactory.cpp
+++ b/src/sycoca/kbuildmimetypefactory.cpp
@@ -43,26 +43,20 @@ KBuildMimeTypeFactory::~KBuildMimeTypeFactory()
 KSycocaEntry::List KBuildMimeTypeFactory::allEntries() const
 {
     assert(sycoca()->isBuilding());
-    KSycocaEntry::List lst;
-    KSycocaEntryDict::Iterator itmime = m_entryDict->begin();
-    const KSycocaEntryDict::Iterator endmime = m_entryDict->end();
-    for (; itmime != endmime; ++itmime) {
-        lst.append(*itmime);
-    }
-    return lst;
+    return m_entryDict->values();
 }
 
 KSycocaEntry *KBuildMimeTypeFactory::createEntry(const QString &file) const
 {
     // file=text/plain.xml  ->  name=plain.xml dirName=text
-    Q_ASSERT(!file.startsWith(QStringLiteral("mime/")));
+    Q_ASSERT(!file.startsWith(QLatin1String("mime/")));
 
     const int pos = file.lastIndexOf('/');
     if (pos == -1) { // huh?
         return 0;
     }
-    const QString dirName = file.left(pos);
-    if (dirName == "packages") { // special subdir
+    const QStringRef dirName = file.leftRef(pos);
+    if (dirName == QLatin1String("packages")) { // special subdir
         return 0;
     }
 
diff --git a/src/sycoca/kbuildservicefactory.cpp \
b/src/sycoca/kbuildservicefactory.cpp index a74f2e8..5361f42 100644
--- a/src/sycoca/kbuildservicefactory.cpp
+++ b/src/sycoca/kbuildservicefactory.cpp
@@ -80,13 +80,10 @@ KService::Ptr KBuildServiceFactory::findServiceByMenuId(const \
QString &menuId)  
 KSycocaEntry *KBuildServiceFactory::createEntry(const QString &file) const
 {
-    Q_ASSERT(!file.startsWith(QStringLiteral("kservices5/"))); // we add this \
ourselves, below +    Q_ASSERT(!file.startsWith(QLatin1String("kservices5/"))); // we \
add this ourselves, below +
+    const QStringRef name = file.midRef(file.lastIndexOf('/') + 1);
 
-    QString name = file;
-    int pos = name.lastIndexOf('/');
-    if (pos != -1) {
-        name = name.mid(pos + 1);
-    }
     // Is it a .desktop file?
     if (name.endsWith(QLatin1String(".desktop"))) {
 
@@ -96,7 +93,7 @@ KSycocaEntry *KBuildServiceFactory::createEntry(const QString \
                &file) const
         if (QDir::isAbsolutePath(file)) { // vfolder sends us full paths for \
applications  serv = new KService(file);
         } else { // we get relative paths for services
-            KDesktopFile desktopFile(QStandardPaths::GenericDataLocation, \
"kservices5/" + file); +            KDesktopFile \
desktopFile(QStandardPaths::GenericDataLocation, QStringLiteral("kservices5/") + \
file);  // Note that the second arg below MUST be 'file', unchanged.
             // If the entry path doesn't match the 'file' parameter to createEntry, \
                reusing old entries
             // (via time dict, which uses the entry path as key) cannot work.
@@ -162,8 +159,7 @@ void KBuildServiceFactory::collectInheritedServices()
     // We need to process parents before children, hence the recursive call in
     // collectInheritedServices(mime) and the QSet to process a given parent only \
once.  QSet<QString> visitedMimes;
-    const QStringList allMimeTypes = m_mimeTypeFactory->allMimeTypes();
-    Q_FOREACH (const QString &mimeType, allMimeTypes) {
+    Q_FOREACH (const QString &mimeType, m_mimeTypeFactory->allMimeTypes()) {
         collectInheritedServices(mimeType, visitedMimes);
     }
 }
@@ -210,8 +206,8 @@ void KBuildServiceFactory::postProcessServices()
     // storage ID) have been removed.
 
     // For every service...
-    KSycocaEntryDict::Iterator itserv = m_entryDict->begin();
-    const KSycocaEntryDict::Iterator endserv = m_entryDict->end();
+    KSycocaEntryDict::const_iterator itserv = m_entryDict->constBegin();
+    const KSycocaEntryDict::const_iterator endserv = m_entryDict->constEnd();
     for (; itserv != endserv; ++itserv) {
 
         KSycocaEntry::Ptr entry = *itserv;
@@ -261,8 +257,8 @@ void KBuildServiceFactory::populateServiceTypes()
 {
     QMimeDatabase db;
     // For every service...
-    KSycocaEntryDict::Iterator itserv = m_entryDict->begin();
-    const KSycocaEntryDict::Iterator endserv = m_entryDict->end();
+    KSycocaEntryDict::const_iterator itserv = m_entryDict->constBegin();
+    const KSycocaEntryDict::const_iterator endserv = m_entryDict->constEnd();
     for (; itserv != endserv; ++itserv) {
 
         KService::Ptr service(static_cast<KService*>((*itserv).data()));
diff --git a/src/sycoca/kbuildsycoca.cpp b/src/sycoca/kbuildsycoca.cpp
index e99e906..5e63907 100644
--- a/src/sycoca/kbuildsycoca.cpp
+++ b/src/sycoca/kbuildsycoca.cpp
@@ -88,7 +88,7 @@ KSycocaEntry::Ptr KBuildSycoca::createEntry(const QString &file, \
bool addToFacto  if (m_allEntries) {
         Q_ASSERT(m_ctimeDict);
         quint32 oldTimestamp = m_ctimeDict->ctime(file, m_resource);
-        if (file.contains(QStringLiteral("fake"))) {
+        if (file.contains(QLatin1String("fake"))) {
             qDebug() << "m_ctimeDict->ctime(" << file << ") = " << oldTimestamp << \
"compared with" << timeStamp;  }
 
@@ -102,7 +102,7 @@ KSycocaEntry::Ptr KBuildSycoca::createEntry(const QString &file, \
bool addToFacto  // remove from m_ctimeDict; if m_ctimeDict is not empty
             // after all files have been processed, it means
             // some files were removed since last time
-            if (file.contains(QStringLiteral("fake"))) {
+            if (file.contains(QLatin1String("fake"))) {
                 qDebug() << "reusing (and removing) old entry for:" << file << \
"entry=" << entry;  }
             m_ctimeDict->remove(file, m_resource);
@@ -140,28 +140,26 @@ KService::Ptr KBuildSycoca::createService(const QString &path)
 // returns false if the database is up to date, true if it needs to be saved
 bool KBuildSycoca::build()
 {
-    typedef QLinkedList<KBSEntryDict *> KBSEntryDictList;
+    typedef QList<KBSEntryDict *> KBSEntryDictList;
     KBSEntryDictList entryDictList;
     KBSEntryDict *serviceEntryDict = 0;
 
     // Convert for each factory the entryList to a Dict.
+    entryDictList.reserve(factories()->size());
     int i = 0;
     // For each factory
-    for (KSycocaFactoryList::Iterator factory = factories()->begin();
-            factory != factories()->end();
-            ++factory) {
+    Q_FOREACH (KSycocaFactory* factory, *factories()) {
         KBSEntryDict *entryDict = new KBSEntryDict;
         if (m_allEntries) { // incremental build
-            const KSycocaEntry::List list = (*m_allEntries)[i++];
-            Q_FOREACH (const KSycocaEntry::Ptr &entry, list) {
+            Q_FOREACH (const KSycocaEntry::Ptr &entry, (*m_allEntries)[i++]) {
                 //if (entry->entryPath().contains("fake"))
                 //    qDebug() << "inserting into entryDict:" << entry->entryPath() \
<< entry;  entryDict->insert(entry->entryPath(), entry);
             }
         }
-        if ((*factory) == d->m_serviceFactory) {
+        if (factory == d->m_serviceFactory) {
             serviceEntryDict = entryDict;
-        } else if ((*factory) == m_buildServiceGroupFactory) {
+        } else if (factory == m_buildServiceGroupFactory) {
             m_serviceGroupEntryDict = entryDict;
         }
         entryDictList.append(entryDict);
@@ -180,11 +178,9 @@ bool KBuildSycoca::build()
 
     QMap<QString, QByteArray> allResourcesSubDirs; // dirs, \
kstandarddirs-resource-name  // For each factory
-    for (KSycocaFactoryList::Iterator factory = factories()->begin();
-            factory != factories()->end();
-            ++factory) {
+    Q_FOREACH (KSycocaFactory* factory, *factories()) {
         // For each resource the factory deals with
-        const KSycocaResourceList *list = (*factory)->resourceList();
+        const KSycocaResourceList *list = factory->resourceList();
         if (!list) {
             continue;
         }
@@ -204,7 +200,7 @@ bool KBuildSycoca::build()
         m_resourceSubdir = it1.key();
         m_resource = it1.value();
 
-        QStringList relFiles;
+        QSet<QString> relFiles;
         const QStringList dirs = \
QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, m_resourceSubdir, \
QStandardPaths::LocateDirectory);  Q_FOREACH (const QString &dir, dirs) {
             QDirIterator it(dir, QDirIterator::Subdirectories);
@@ -212,15 +208,13 @@ bool KBuildSycoca::build()
                 const QString filePath = it.next();
                 Q_ASSERT(filePath.startsWith(dir)); // due to the line below...
                 const QString relPath = filePath.mid(dir.length() + 1);
-                if (!relFiles.contains(relPath)) {
-                    relFiles.append(relPath);
-                }
+                relFiles.insert(relPath);
             }
         }
         // Now find all factories that use this resource....
         // For each factory
-        KBSEntryDictList::const_iterator ed_it = entryDictList.begin();
-        const KBSEntryDictList::const_iterator ed_end = entryDictList.end();
+        KBSEntryDictList::const_iterator ed_it = entryDictList.constBegin();
+        const KBSEntryDictList::const_iterator ed_end = entryDictList.constEnd();
         KSycocaFactoryList::const_iterator it = factories()->constBegin();
         const KSycocaFactoryList::const_iterator end = factories()->constEnd();
         for (; it != end; ++it, ++ed_it) {
@@ -233,22 +227,18 @@ bool KBuildSycoca::build()
                 continue;
             }
 
-            for (KSycocaResourceList::ConstIterator it2 = list->constBegin();
-                    it2 != list->constEnd();
-                    ++it2) {
-                KSycocaResource res = (*it2);
+            Q_FOREACH (const KSycocaResource &res, *list) {
                 if (res.resource != (*it1)) {
                     continue;
                 }
 
                 // For each file in the resource
-                for (QStringList::ConstIterator it3 = relFiles.constBegin();
-                        it3 != relFiles.constEnd();
-                        ++it3) {
+                for (auto entryPath = relFiles.constBegin();
+                         entryPath != relFiles.constEnd();
+                        ++entryPath) {
                     // Check if file matches filter
-                    if ((*it3).endsWith(res.extension)) {
-                        QString entryPath = (*it3);
-                        createEntry(entryPath, true);
+                    if ((*entryPath).endsWith(res.extension)) {
+                        createEntry(*entryPath, true);
                     }
                 }
             }
@@ -386,7 +376,7 @@ bool KBuildSycoca::recreate(bool incremental)
     }
     QString path(fi.absoluteFilePath());
 
-    QLockFile lockFile(path + ".lock");
+    QLockFile lockFile(path + QLatin1String(".lock"));
     if (!lockFile.tryLock()) {
         qDebug() <<  "Waiting for already running" << KBUILDSYCOCA_EXENAME << "to \
finish.";  if (!lockFile.lock()) {
@@ -524,20 +514,18 @@ void KBuildSycoca::save(QDataStream *str)
     //KSycocaFactory * servicetypeFactory = 0;
     //KBuildMimeTypeFactory * mimeTypeFactory = 0;
     KBuildServiceFactory *serviceFactory = 0;
-    for (KSycocaFactoryList::Iterator factory = factories()->begin();
-            factory != factories()->end();
-            ++factory) {
+    Q_FOREACH (KSycocaFactory* factory, *factories()) {
         qint32 aId;
         qint32 aOffset;
-        aId = (*factory)->factoryId();
+        aId = factory->factoryId();
         //if ( aId == KST_KServiceTypeFactory )
-        //   servicetypeFactory = *factory;
+        //   servicetypeFactory = factory;
         //else if ( aId == KST_KMimeTypeFactory )
-        //   mimeTypeFactory = static_cast<KBuildMimeTypeFactory *>( *factory );
+        //   mimeTypeFactory = static_cast<KBuildMimeTypeFactory *>( factory );
         if (aId == KST_KServiceFactory) {
-            serviceFactory = static_cast<KBuildServiceFactory *>(*factory);
+            serviceFactory = static_cast<KBuildServiceFactory *>(factory);
         }
-        aOffset = (*factory)->offset(); // not set yet, so always 0
+        aOffset = factory->offset(); // not set yet, so always 0
         (*str) << aId;
         (*str) << aOffset;
     }
@@ -560,10 +548,8 @@ void KBuildSycoca::save(QDataStream *str)
     qDebug() << "Saving";
 
     // Write factory data....
-    for (KSycocaFactoryList::Iterator factory = factories()->begin();
-            factory != factories()->end();
-            ++factory) {
-        (*factory)->save(*str);
+    Q_FOREACH (KSycocaFactory* factory, *factories()) {
+        factory->save(*str);
         if (str->status() != QDataStream::Ok) { // ######## TODO: does this detect \
write errors, e.g. disk full?  return;    // error
         }
@@ -575,12 +561,11 @@ void KBuildSycoca::save(QDataStream *str)
     str->device()->seek(0);
 
     (*str) << qint32(KSycoca::version());
-    for (KSycocaFactoryList::Iterator factory = factories()->begin();
-            factory != factories()->end(); ++factory) {
+    Q_FOREACH (KSycocaFactory* factory, *factories()) {
         qint32 aId;
         qint32 aOffset;
-        aId = (*factory)->factoryId();
-        aOffset = (*factory)->offset();
+        aId = factory->factoryId();
+        aOffset = factory->offset();
         (*str) << aId;
         (*str) << aOffset;
     }
diff --git a/src/sycoca/kmimeassociations.cpp b/src/sycoca/kmimeassociations.cpp
index 9423b27..2ddcc07 100644
--- a/src/sycoca/kmimeassociations.cpp
+++ b/src/sycoca/kmimeassociations.cpp
@@ -86,7 +86,7 @@ void KMimeAssociations::parseAllMimeAppsList()
 void KMimeAssociations::parseMimeAppsList(const QString &file, int basePreference)
 {
     KConfig profile(file, KConfig::SimpleConfig);
-    if (file.endsWith(QStringLiteral("/mimeapps.list"))) { // not for \
$desktop-mimeapps.list +    if (file.endsWith(QLatin1String("/mimeapps.list"))) { // \
                not for $desktop-mimeapps.list
         parseAddedAssociations(KConfigGroup(&profile, "Added Associations"), file, \
                basePreference);
         parseRemovedAssociations(KConfigGroup(&profile, "Removed Associations"), \
file);  
diff --git a/src/sycoca/ksycocadict.cpp b/src/sycoca/ksycocadict.cpp
index f33d01a..d01be82 100644
--- a/src/sycoca/ksycocadict.cpp
+++ b/src/sycoca/ksycocadict.cpp
@@ -53,8 +53,7 @@ class KSycocaDictPrivate
 {
 public:
     KSycocaDictPrivate()
-        : stringlist(0)
-        , stream(0)
+        : stream(0)
         , offset(0)
         , hashTableSize(0)
     {
@@ -62,7 +61,6 @@ public:
 
     ~KSycocaDictPrivate()
     {
-        delete stringlist;
     }
 
     // Helper for find_string and findMultiString
@@ -71,7 +69,7 @@ public:
     // Calculate hash - can be used during loading and during saving.
     quint32 hashKey(const QString &key) const;
 
-    KSycocaDictStringList *stringlist;
+    KSycocaDictStringList stringlist;
     QDataStream *stream;
     qint64 offset;
     quint32 hashTableSize;
@@ -119,26 +117,22 @@ KSycocaDict::add(const QString &key, const KSycocaEntry::Ptr \
&payload)  if (!payload) {
         return;    // Not allowed!
     }
-    if (!d->stringlist) {
-        d->stringlist = new KSycocaDictStringList;
-    }
 
-    string_entry *entry = new string_entry(key, payload);
-    d->stringlist->append(entry);
+    d->stringlist.append(new string_entry(key, payload));
 }
 
 void
 KSycocaDict::remove(const QString &key)
 {
-    if (!d || !d->stringlist) {
+    if (!d) {
         return;
     }
 
     bool found = false;
-    for (KSycocaDictStringList::Iterator it = d->stringlist->begin(); it != \
d->stringlist->end(); ++it) { +    for (KSycocaDictStringList::Iterator it = \
d->stringlist.begin(); it != d->stringlist.end(); ++it) {  string_entry *entry = *it;
         if (entry->keyStr == key) {
-            d->stringlist->erase(it);
+            d->stringlist.erase(it);
             delete entry;
             found = true;
             break;
@@ -224,11 +218,11 @@ QList<int> KSycocaDict::findMultiString(const QString &key) \
const  
 uint KSycocaDict::count() const
 {
-    if (!d || !d->stringlist) {
+    if (!d) {
         return 0;
     }
 
-    return d->stringlist->count();
+    return d->stringlist.count();
 }
 
 void
@@ -278,11 +272,12 @@ uint KSycocaDictPrivate::hashKey(const QString &key) const
 // Calculate the diversity of the strings at position 'pos'
 // NOTE: this code is slow, it takes 12% of the _overall_ `kbuildsycoca5 \
--noincremental` running time  static int
-calcDiversity(KSycocaDictStringList *stringlist, int inPos, uint sz)
+calcDiversity(KSycocaDictStringList* stringlistp, int inPos, uint sz)
 {
     if (inPos == 0) {
         return 0;
     }
+    KSycocaDictStringList& stringlist = *stringlistp;
     QBitArray matrix(sz);
     int pos;
 
@@ -291,11 +286,11 @@ calcDiversity(KSycocaDictStringList *stringlist, int inPos, \
uint sz)  
     if (inPos < 0) {
         pos = -inPos;
-        for (KSycocaDictStringList::const_iterator it = stringlist->constBegin(), \
end = stringlist->constEnd(); it != end; ++it) { +        for (auto it = \
stringlist.constBegin(), end = stringlist.constEnd(); it != end; ++it) {  \
                string_entry *entry = *it;
-            int len = entry->length;
-            if (pos < len) {
-                uint hash = ((entry->hash * 13) + (entry->key[len - pos].cell() % \
29)) & 0x3ffffff; +            int rpos = entry->length - pos;
+            if (rpos > 0) {
+                uint hash = ((entry->hash * 13) + (entry->key[rpos].cell() % 29)) & \
0x3ffffff;  matrix.setBit(hash % sz, true);
             }
             //if (++numItem == s_maxItems)
@@ -303,7 +298,7 @@ calcDiversity(KSycocaDictStringList *stringlist, int inPos, uint \
sz)  }
     } else {
         pos = inPos - 1;
-        for (KSycocaDictStringList::const_iterator it = stringlist->constBegin(), \
end = stringlist->constEnd(); it != end; ++it) { +        for (auto it = \
stringlist.constBegin(), end = stringlist.constEnd(); it != end; ++it) {  \
string_entry *entry = *it;  if (pos < entry->length) {
                 uint hash = ((entry->hash * 13) + (entry->key[pos].cell() % 29)) & \
0x3ffffff; @@ -319,23 +314,24 @@ calcDiversity(KSycocaDictStringList *stringlist, int \
inPos, uint sz)  //
 // Add the diversity of the strings at position 'pos'
 static void
-addDiversity(KSycocaDictStringList *stringlist, int pos)
+addDiversity(KSycocaDictStringList* stringlistp, int pos)
 {
     if (pos == 0) {
         return;
     }
+    KSycocaDictStringList& stringlist = *stringlistp;
     if (pos < 0) {
         pos = -pos;
-        for (KSycocaDictStringList::const_iterator it = stringlist->constBegin(), \
end = stringlist->constEnd(); it != end; ++it) { +        for (auto it = \
stringlist.constBegin(), end = stringlist.constEnd(); it != end; ++it) {  \
                string_entry *entry = *it;
-            int len = entry->length;
-            if (pos < len) {
-                entry->hash = ((entry->hash * 13) + (entry->key[len - pos].cell() % \
29)) & 0x3fffffff; +            int rpos = entry->length - pos;
+            if (rpos > 0) {
+                entry->hash = ((entry->hash * 13) + (entry->key[rpos].cell() % 29)) \
& 0x3fffffff;  }
         }
     } else {
         pos = pos - 1;
-        for (KSycocaDictStringList::const_iterator it = stringlist->constBegin(), \
end = stringlist->constEnd(); it != end; ++it) { +        for (auto it = \
stringlist.constBegin(), end = stringlist.constEnd(); it != end; ++it) {  \
string_entry *entry = *it;  if (pos < entry->length) {
                 entry->hash = ((entry->hash * 13) + (entry->key[pos].cell() % 29)) & \
0x3fffffff; @@ -363,7 +359,7 @@ KSycocaDict::save(QDataStream &str)
 
     int maxLength = 0;
     //qDebug() << "Finding maximum string length";
-    for (KSycocaDictStringList::const_iterator it = d->stringlist->constBegin(); it \
!= d->stringlist->constEnd(); ++it) { +    for (KSycocaDictStringList::const_iterator \
it = d->stringlist.constBegin(); it != d->stringlist.constEnd(); ++it) {  \
string_entry *entry = *it;  entry->hash = 0;
         if (entry->length > maxLength) {
@@ -375,7 +371,7 @@ KSycocaDict::save(QDataStream &str)
 
     // use "almost prime" number for sz (to calculate diversity) and later
     // for the table size of big tables
-    // int sz = d->stringlist->count()*5-1;
+    // int sz = d->stringlist.count()*5-1;
     unsigned int sz = count() * 4 + 1;
     while (!(((sz % 3) && (sz % 5) && (sz % 7) && (sz % 11) && (sz % 13)))) {
         sz += 2;
@@ -416,7 +412,7 @@ KSycocaDict::save(QDataStream &str)
                 continue;
             }
 
-            const int diversity = calcDiversity(d->stringlist, pos, sz);
+            const int diversity = calcDiversity(&(d->stringlist), pos, sz);
             if (diversity > maxDiv) {
                 maxDiv = diversity;
                 maxPos = pos;
@@ -435,11 +431,11 @@ KSycocaDict::save(QDataStream &str)
         }
         //qDebug() << "Max Div=" << maxDiv << "at pos" << maxPos;
         lastDiv = maxDiv;
-        addDiversity(d->stringlist, maxPos);
+        addDiversity(&(d->stringlist), maxPos);
         d->hashList.append(maxPos);
     }
 
-    for (KSycocaDictStringList::Iterator it = d->stringlist->begin(); it != \
d->stringlist->end(); ++it) { +    for (auto it = d->stringlist.constBegin(); it != \
d->stringlist.constEnd(); ++it) {  (*it)->hash = d->hashKey((*it)->keyStr);
     }
 // fprintf(stderr, "Calculating minimum table size..\n");
@@ -463,7 +459,7 @@ KSycocaDict::save(QDataStream &str)
     }
 
     //qDebug() << "Filling hashtable...";
-    for (KSycocaDictStringList::const_iterator it = d->stringlist->constBegin(); it \
!= d->stringlist->constEnd(); ++it) { +    for (auto it = d->stringlist.constBegin(); \
it != d->stringlist.constEnd(); ++it) {  string_entry *entry = *it;
         //qDebug() << "entry keyStr=" << entry->keyStr << entry->payload.data() << \
entry->payload->entryPath();  int hash = entry->hash % sz;
@@ -515,25 +511,25 @@ KSycocaDict::save(QDataStream &str)
 
                 /*qDebug() << QString("Duplicate lists: Offset = %1 list_size = %2") \
                .arg(hashTable[i].duplicate_offset,8,16).arg(dups->count());
                 */
-                for (QList<string_entry *>::ConstIterator dup = dups->begin(); dup \
                != dups->end(); ++dup) {
-                    const qint32 offset = (*dup)->payload->offset();
+                Q_FOREACH (string_entry* dup, *dups) {
+                    const qint32 offset = dup->payload->offset();
                     if (!offset) {
-                        const QString storageId = (*dup)->payload->storageId();
-                        qDebug() << "about to assert! dict=" << this << "storageId=" \
                << storageId << (*dup)->payload.data();
-                        if ((*dup)->payload->isType(KST_KService)) {
-                            KService::Ptr \
service(static_cast<KService*>((*dup)->payload.data())); +                        \
const QString storageId = dup->payload->storageId(); +                        \
qDebug() << "about to assert! dict=" << this << "storageId=" << storageId << \
dup->payload.data(); +                        if (dup->payload->isType(KST_KService)) \
{ +                            KService::Ptr \
                service(static_cast<KService*>(dup->payload.data()));
                             qDebug() << service->storageId() << \
service->entryPath();  }
                         // save() must have been called on the entry
                         Q_ASSERT_X(offset, "KSycocaDict::save",
                                    QByteArray("entry offset is 0, save() was not \
                called on "
-                                              + \
(*dup)->payload->storageId().toLatin1() +                                             \
+ dup->payload->storageId().toLatin1()  + " entryPath="
-                                              + \
(*dup)->payload->entryPath().toLatin1()).constData() +                                \
+ dup->payload->entryPath().toLatin1()).constData()  );
                     }
                     str << offset;                       // Positive ID
-                    str << (*dup)->keyStr;                // Key (QString)
+                    str << dup->keyStr;                // Key (QString)
                 }
                 str << qint32(0);               // End of list marker (0)
             }
diff --git a/src/sycoca/ksycocafactory.cpp b/src/sycoca/ksycocafactory.cpp
index e410581..d9f53de 100644
--- a/src/sycoca/ksycocafactory.cpp
+++ b/src/sycoca/ksycocafactory.cpp
@@ -115,9 +115,7 @@ KSycocaFactory::save(QDataStream &str)
 
     // Write all entries.
     int entryCount = 0;
-    for (KSycocaEntryDict::Iterator it = m_entryDict->begin();
-            it != m_entryDict->end(); ++it) {
-        KSycocaEntry::Ptr entry = *it;
+    Q_FOREACH(KSycocaEntry::Ptr entry, *m_entryDict) {
         entry->d_ptr->save(str);
         entryCount++;
     }
@@ -127,9 +125,8 @@ KSycocaFactory::save(QDataStream &str)
     // Write indices...
     // Linear index
     str << qint32(entryCount);
-    for (KSycocaEntryDict::Iterator it = m_entryDict->begin();
-            it != m_entryDict->end(); ++it) {
-        str << qint32(it->data()->offset());
+    Q_FOREACH(KSycocaEntry::Ptr entry, *m_entryDict) {
+        str << qint32(entry.data()->offset());
     }
 
     // Dictionary index
diff --git a/src/sycoca/ksycocautils_p.h b/src/sycoca/ksycocautils_p.h
index 8db26b0..aad9d50 100644
--- a/src/sycoca/ksycocautils_p.h
+++ b/src/sycoca/ksycocautils_p.h
@@ -70,7 +70,7 @@ bool visitResourceDirectory(const QString &dirname, Visitor \
visitor)  
     // Recurse only for services and menus.
     // Apps and servicetypes don't need recursion, so save the directory listing.
-    if (!dirname.contains(QStringLiteral("/applications")) && \
!dirname.contains(QStringLiteral("/kservicetypes5"))) { +    if \
(!dirname.contains(QLatin1String("/applications")) && \
!dirname.contains(QLatin1String("/kservicetypes5"))) {  return \
visitResourceDirectoryHelper(dirname, visitor);  }
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic