rpms/kdebase-runtime/F-12 kdebase-runtime-4.3.4-kde#202744.patch, NONE, 1.1 kdebase-runtime.spec, 1.156, 1.157

Rex Dieter rdieter at fedoraproject.org
Thu Jan 21 15:02:31 UTC 2010


Author: rdieter

Update of /cvs/pkgs/rpms/kdebase-runtime/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv28866

Modified Files:
	kdebase-runtime.spec 
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 |   50 ++++++++++++++++----------------------------------
 1 file changed, 16 insertions(+), 34 deletions(-)

--- NEW FILE kdebase-runtime-4.3.4-kde#202744.patch ---
--- branches/KDE/4.4/kdebase/runtime/phonon/kded-module/hardwaredatabase.cpp	2010/01/06 22:46:33	1070858
+++ branches/KDE/4.4/kdebase/runtime/phonon/kded-module/hardwaredatabase.cpp	2010/01/16 11:07:03	1075552
@@ -35,7 +35,6 @@
 #include <QtCore/QFileInfo>
 #include <QtCore/QSet>
 #include <QtCore/QString>
-#include <QtCore/QTimerEvent>
 
 static const char CACHE_MAGIC[] = "PHwdbC";
 static const quint32 CACHE_VERSION = 2;
@@ -56,19 +55,15 @@
 
         QCache<QString, Entry> entryCache;
 
-    protected:
-        void timerEvent(QTimerEvent *);
-
     private:
-        int m_timerId;
-        QFile *m_cacheFile;
+        QWeakPointer<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 +80,12 @@
         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 +189,17 @@
 {
     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 +208,14 @@
     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 +227,7 @@
 
     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 +241,6 @@
     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));


Index: kdebase-runtime.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kdebase-runtime/F-12/kdebase-runtime.spec,v
retrieving revision 1.156
retrieving revision 1.157
diff -u -p -r1.156 -r1.157
--- kdebase-runtime.spec	3 Dec 2009 17:19:45 -0000	1.156
+++ kdebase-runtime.spec	21 Jan 2010 15:02:30 -0000	1.157
@@ -9,7 +9,7 @@
 Name:          kdebase-runtime
 Summary:       K Desktop Environment - Runtime
 Version:       4.3.4
-Release:       2%{?dist}
+Release:       3%{?dist}
 
 # http://techbase.kde.org/Policies/Licensing_Policy
 License:       LGPLv2+
@@ -32,6 +32,9 @@ Patch6:        kdebase-runtime-4.3.3-hom
 Patch7:        kdebase-runtime-4.3.1-backend-globalconfig.patch
 
 ## Upstream patches
+## http://bugs.kde.org/202744
+## http://websvn.kde.org/branches/KDE/4.4/kdebase/runtime/phonon/kded-module/hardwaredatabase.cpp?r1=1070858&r2=1075552&pathrev=1075552&view=patch
+Patch100: kdebase-runtime-4.3.4-kde#202744.patch
 
 # when kdesu was removed, this is/should-be only temporary
 %if 0%{?fedora} && 0%{?fedora} < 11
@@ -127,6 +130,8 @@ BuildArch: noarch
 #patch5 -p1 -b .manpath
 %patch6 -p1 -b .home_onlyshowin_kde
 
+%patch100 -p5 -b .kde#202744
+
 
 %build
 mkdir -p %{_target_platform}
@@ -243,6 +248,9 @@ fi
 
 
 %changelog
+* Thu Jan 21 2010 Rex Dieter <rdieter at fedoraproject.org> - 4.3.4-3
+- backport upstream kded/cpuhog patch (kde#202744)
+
 * Thu Dec 03 2009 Rex Dieter <rdieter at fedoraproject.org> - 4.3.4-2
 - phonon/pulseaudio patch from mandriva, kudos to coling (f12)
 



More information about the scm-commits mailing list