rpms/kdebase-runtime/F-11 kdebase-runtime-4.3.4-kde#202744.patch, NONE, 1.1
Rex Dieter
rdieter at fedoraproject.org
Fri Jan 22 14:11:45 UTC 2010
Author: rdieter
Update of /cvs/pkgs/rpms/kdebase-runtime/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv10678
Added Files:
kdebase-runtime-4.3.4-kde#202744.patch
Log Message:
* Thu Jan 21 2010 Rex Dieter <rdieter at fedoraproject.org> - 4.3.4-3
- backport upstream kded/cpuhog patch (kde#202744)
kdebase-runtime-4.3.4-kde#202744.patch:
hardwaredatabase.cpp | 51 +++++++++++++++++----------------------------------
1 file changed, 17 insertions(+), 34 deletions(-)
--- NEW FILE kdebase-runtime-4.3.4-kde#202744.patch ---
diff -up kdebase-runtime-4.3.4/phonon/kded-module/hardwaredatabase.cpp.kde#202744 kdebase-runtime-4.3.4/phonon/kded-module/hardwaredatabase.cpp
--- kdebase-runtime-4.3.4/phonon/kded-module/hardwaredatabase.cpp.kde#202744 2009-01-01 10:25:19.000000000 -0600
+++ kdebase-runtime-4.3.4/phonon/kded-module/hardwaredatabase.cpp 2010-01-21 09:24:08.586544487 -0600
@@ -35,7 +35,7 @@
#include <QtCore/QFileInfo>
#include <QtCore/QSet>
#include <QtCore/QString>
-#include <QtCore/QTimerEvent>
+#include <QtCore/QPointer>
static const char CACHE_MAGIC[] = "PHwdbC";
static const quint32 CACHE_VERSION = 2;
@@ -56,19 +56,15 @@ class HardwareDatabasePrivate : public Q
QCache<QString, Entry> entryCache;
- protected:
- void timerEvent(QTimerEvent *);
-
private:
- int m_timerId;
- QFile *m_cacheFile;
+ QPointer<QFile> m_cacheFile;
QString m_fileName;
};
K_GLOBAL_STATIC(HardwareDatabasePrivate, s_globalDB)
HardwareDatabasePrivate::HardwareDatabasePrivate()
- : m_timerId(-1), m_cacheFile(0)
+ : m_cacheFile()
{
const QString dbFileName = KStandardDirs::locate("data", QLatin1String("libphonon/hardwaredatabase"));
if (dbFileName.isEmpty()) {
@@ -85,13 +81,12 @@ HardwareDatabasePrivate::HardwareDatabas
createCache(dbFileName, cacheFileName);
} else {
m_cacheFile = new QFile(cacheFileName);
- m_cacheFile->open(QIODevice::ReadOnly);
- m_timerId = startTimer(0);
- QDataStream cacheStream(m_cacheFile);
+ m_cacheFile.data()->open(QIODevice::ReadOnly);
+ m_cacheFile.data()->deleteLater();
+ QDataStream cacheStream(m_cacheFile.data());
if (!validCacheHeader(cacheStream)) {
- m_cacheFile->close();
- delete m_cacheFile;
- m_cacheFile = 0;
+ m_cacheFile.data()->close();
+ delete m_cacheFile.data();
createCache(dbFileName, cacheFileName);
}
}
@@ -195,18 +190,17 @@ Entry *HardwareDatabasePrivate::readEntr
{
QDataStream cacheStream;
if (m_cacheFile) {
- if (m_cacheFile->seek(HEADER_LENGTH)) {
- cacheStream.setDevice(m_cacheFile);
+ if (m_cacheFile.data()->seek(HEADER_LENGTH)) {
+ cacheStream.setDevice(m_cacheFile.data());
} else {
- delete m_cacheFile;
- m_cacheFile = 0;
+ delete m_cacheFile.data();
}
}
if (!m_cacheFile) {
m_cacheFile = new QFile(m_fileName);
- m_cacheFile->open(QIODevice::ReadOnly);
- m_timerId = startTimer(0);
- cacheStream.setDevice(m_cacheFile);
+ m_cacheFile.data()->open(QIODevice::ReadOnly);
+ m_cacheFile.data()->deleteLater();
+ cacheStream.setDevice(m_cacheFile.data());
if (!validCacheHeader(cacheStream)) {
return 0;
}
@@ -215,14 +209,14 @@ Entry *HardwareDatabasePrivate::readEntr
quint32 hashTableBuckets;
cacheStream >> hashTableOffset >> hashTableBuckets;
const uint h = qHash(uniqueId);
- m_cacheFile->seek(hashTableOffset + (h % hashTableBuckets) * sizeof(quint32));
+ m_cacheFile.data()->seek(hashTableOffset + (h % hashTableBuckets) * sizeof(quint32));
quint32 offset;
cacheStream >> offset;
//kDebug(601) << hashTableOffset << hashTableBuckets << uniqueId << h << offset;
if (0 == offset) {
return 0;
}
- m_cacheFile->seek(offset);
+ m_cacheFile.data()->seek(offset);
QList<BucketEntry> bucket;
cacheStream >> bucket;
@@ -234,7 +228,7 @@ Entry *HardwareDatabasePrivate::readEntr
foreach (const BucketEntry &entry, bucket) {
if (entry.hash == h) {
- m_cacheFile->seek(entry.offset);
+ m_cacheFile.data()->seek(entry.offset);
cacheStream >> readUdi;
if (readUdi == uniqueId) {
cacheStream >> name >> iconName >> pref >> isAdvanced;
@@ -248,17 +242,6 @@ Entry *HardwareDatabasePrivate::readEntr
return 0;
}
-void HardwareDatabasePrivate::timerEvent(QTimerEvent *e)
-{
- if (e->timerId() == m_timerId) {
- delete m_cacheFile;
- m_cacheFile = 0;
- killTimer(m_timerId);
- } else {
- QObject::timerEvent(e);
- }
-}
-
bool contains(const QString &uniqueId)
{
return (s_globalDB->entryCache[uniqueId] || s_globalDB->readEntry(uniqueId));
More information about the scm-commits
mailing list