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