]> git.sesse.net Git - kdenlive/commitdiff
Fix small memleak of metadata
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 12 Sep 2011 20:17:32 +0000 (20:17 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Mon, 12 Sep 2011 20:17:32 +0000 (20:17 +0000)
svn path=/trunk/kdenlive/; revision=5914

src/initeffects.cpp
src/initeffects.h

index 5fcc8dcf05866ba6dbb3ed8fd4d928ed1054f4e2..1acd593cbd42b4dc7e6925578f21e7be80f4e9a6 100644 (file)
@@ -134,7 +134,7 @@ QDomDocument initEffects::getUsedCustomEffects(QMap <QString, QString> effectids
 }
 
 //static
-Mlt::Repository *initEffects::parseEffectFiles()
+void initEffects::parseEffectFiles()
 {
     QStringList::Iterator more;
     QStringList::Iterator it;
@@ -144,7 +144,7 @@ Mlt::Repository *initEffects::parseEffectFiles()
     Mlt::Repository *repository = Mlt::Factory::init();
     if (!repository) {
         kDebug() << "Repository didn't finish initialisation" ;
-        return NULL;
+        return;
     }
 
     // Retrieve the list of MLT's available effects.
@@ -287,8 +287,6 @@ Mlt::Repository *initEffects::parseEffectFiles()
     MainWindow::videoEffects.clearList();
     foreach(const QDomElement & effect, videoEffectsMap)
         MainWindow::videoEffects.append(effect);
-
-    return repository;
 }
 
 // static
@@ -550,8 +548,9 @@ void initEffects::fillTransitionsList(Mlt::Repository *repository, EffectsList *
         QDomElement desc = ret.createElement("description");
         ktrans.appendChild(tname);
         ktrans.appendChild(desc);
-        Mlt::Properties *metadata = repository->metadata(transition_type, name.toUtf8().data());
-        if (!customTransitions.contains(name) && metadata && metadata->is_valid()) {
+        Mlt::Properties *metadata = NULL;
+        if (!customTransitions.contains(name)) metadata = repository->metadata(transition_type, name.toUtf8().data());
+        if (metadata && metadata->is_valid()) {
             // If possible, set name and description.
             if (metadata->get("title") && metadata->get("identifier"))
                 tname.appendChild(ret.createTextNode(metadata->get("title")));
@@ -591,8 +590,6 @@ void initEffects::fillTransitionsList(Mlt::Repository *repository, EffectsList *
                 params.appendChild(pname);
                 ktrans.appendChild(params);
             }
-            delete metadata;
-            metadata = 0;
         } else {
             /*
              * Check for Kdenlive installed luma files, add empty string at
@@ -674,7 +671,8 @@ void initEffects::fillTransitionsList(Mlt::Repository *repository, EffectsList *
             foreach(const QDomElement & e, paramList)
             ktrans.appendChild(e);
         }
-
+        delete metadata;
+        metadata = 0;
         // Add the transition to the global list.
         transitions->append(ret.documentElement());
         //kDebug() << ret.toString();
index f0a431ae5c52437b3446c2f1ace2b9e971cbd518..cbc06d0858d5d55ff93cbde663a6dbfcc0825586 100644 (file)
@@ -54,7 +54,7 @@ public:
      * It checks for all available effects and transitions, removes blacklisted
      * ones, calls fillTransitionsList() and parseEffectFile() to fill the lists
      * (with sorted, unique items) and then fills the global lists. */
-    static Mlt::Repository *parseEffectFiles();
+    static void parseEffectFiles();
     static void refreshLumas();
     static QDomDocument createDescriptionFromMlt(Mlt::Repository* repository, const QString& type, const QString& name);
     static QDomDocument getUsedCustomEffects(QMap <QString, QString> effectids);