From: Jean-Baptiste Mardelle Date: Mon, 12 Sep 2011 20:17:32 +0000 (+0000) Subject: Fix small memleak of metadata X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=21a6715f382fe869867fe260081340817ea5b629;p=kdenlive Fix small memleak of metadata svn path=/trunk/kdenlive/; revision=5914 --- diff --git a/src/initeffects.cpp b/src/initeffects.cpp index 5fcc8dcf..1acd593c 100644 --- a/src/initeffects.cpp +++ b/src/initeffects.cpp @@ -134,7 +134,7 @@ QDomDocument initEffects::getUsedCustomEffects(QMap 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(); diff --git a/src/initeffects.h b/src/initeffects.h index f0a431ae..cbc06d08 100644 --- a/src/initeffects.h +++ b/src/initeffects.h @@ -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 effectids);