Sophie

Sophie

distrib > Mandriva > 2009.0 > x86_64 > media > main-testing-src > by-pkgid > 69501fee79f575b9818fcbd4bf2bb6c4 > files > 16

kdelibs4-4.2.4-0.2mdv2009.0.src.rpm

diff -u -r kded.orig/kbuildmimetypefactory.cpp kded/kbuildmimetypefactory.cpp
--- kded.orig/kbuildmimetypefactory.cpp	2008-10-22 21:04:54.000000000 -0200
+++ kded/kbuildmimetypefactory.cpp	2009-03-02 17:14:11.000000000 -0300
@@ -347,15 +347,3 @@
     // END TODO
     str << QString(""); // end of list marker (has to be a string !)
 }
-
-void
-KBuildMimeTypeFactory::addEntry(const KSycocaEntry::Ptr& newEntry)
-{
-   KMimeType::Ptr mimeType = KMimeType::Ptr::staticCast( newEntry );
-   if ( m_entryDict->value( newEntry->name() ) )
-   {
-     // Already exists -> replace
-     KSycocaFactory::removeEntry(newEntry->name());
-   }
-   KSycocaFactory::addEntry(newEntry);
-}
Somente em kded: kbuildmimetypefactory.cpp~
Somente em kded.orig: .kbuildmimetypefactory.cpp.swp
diff -u -r kded.orig/kbuildmimetypefactory.h kded/kbuildmimetypefactory.h
--- kded.orig/kbuildmimetypefactory.h	2008-10-17 08:01:38.000000000 -0300
+++ kded/kbuildmimetypefactory.h	2009-03-02 17:17:22.000000000 -0300
@@ -54,11 +54,6 @@
   virtual KMimeType * createEntry( int ) const { assert(0); return 0L; }
 
   /**
-   * Add entry
-   */
-  virtual void addEntry(const KSycocaEntry::Ptr& newEntry);
-
-  /**
    * Write out mime type specific index files.
    */
   virtual void save(QDataStream &str);
Somente em kded: kbuildmimetypefactory.h~
diff -u -r kded.orig/kbuildservicefactory.cpp kded/kbuildservicefactory.cpp
--- kded.orig/kbuildservicefactory.cpp	2009-02-26 11:18:32.000000000 -0300
+++ kded/kbuildservicefactory.cpp	2009-03-02 17:15:51.000000000 -0300
@@ -376,15 +376,5 @@
     const KService::Ptr service = KService::Ptr::staticCast( newEntry );
     m_dupeDict.insert(newEntry);
 
-    KSycocaEntry::Ptr oldEntry = m_entryDict->value(newEntry->storageId());
-    if (oldEntry) {
-        // Already exists -> replace
-        //KService::Ptr oldService = KService::Ptr::staticCast(oldEntry);
-        // We found a more-local override, e.g. ~/.local/share/applications/kde4/foo.desktop
-        // So forget about the more global file.
-        //kDebug(7021) << "removing" << oldService.data() << oldService->entryPath() << "because of" << service->entryPath();
-        KSycocaFactory::removeEntry(newEntry->storageId());
-    }
-
     KSycocaFactory::addEntry(newEntry);
 }
Somente em kded: kbuildservicefactory.cpp~
diff -u -r kded.orig/kbuildservicetypefactory.cpp kded/kbuildservicetypefactory.cpp
--- kded.orig/kbuildservicetypefactory.cpp	2008-10-22 21:04:54.000000000 -0200
+++ kded/kbuildservicetypefactory.cpp	2009-03-02 17:16:54.000000000 -0300
@@ -132,13 +132,10 @@
 void
 KBuildServiceTypeFactory::addEntry(const KSycocaEntry::Ptr& newEntry)
 {
-    KServiceType::Ptr serviceType = KServiceType::Ptr::staticCast( newEntry );
-    if ( m_entryDict->value( newEntry->name() ) ) {
-        // Already exists -> replace
-        KSycocaFactory::removeEntry(newEntry->name());
-    }
     KSycocaFactory::addEntry(newEntry);
 
+    KServiceType::Ptr serviceType = KServiceType::Ptr::staticCast( newEntry );
+
     const QMap<QString,QVariant::Type>& pd = serviceType->propertyDefs();
     QMap<QString,QVariant::Type>::ConstIterator pit = pd.begin();
     for( ; pit != pd.end(); ++pit ) {
Somente em kded: kbuildservicetypefactory.cpp~
--- kdecore/sycoca/ksycocafactory.cpp~	2009-02-26 11:18:54.000000000 -0300
+++ kdecore/sycoca/ksycocafactory.cpp	2009-03-02 17:19:48.000000000 -0300
@@ -150,6 +150,19 @@
 
     if (!d->m_sycocaDict) return; // Error!
 
+    KSycocaEntry::Ptr oldEntry = m_entryDict->value(newEntry->storageId());
+    if (oldEntry) {
+        // Already exists -> replace
+        // We found a more-local override, e.g. ~/.local/share/applications/kde4/foo.desktop
+        // So forget about the more global file.
+        //
+        // This can also happen with two .protocol files using the same protocol= entry.
+        // If we didn't remove one here, we would end up asserting because save()
+        // wasn't called on one of the entries.
+        //kDebug(7021) << "removing" << oldEntry.data() << oldEntry->entryPath() << "because of" << newEntry->entryPath() << "they have the same storageId" << newEntry->storageId();
+        removeEntry(newEntry->storageId());
+    }
+
     const QString name = newEntry->storageId();
     m_entryDict->insert( name, newEntry );
     d->m_sycocaDict->add( name, newEntry );