[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