]> git.sesse.net Git - mlt/commitdiff
Fix mem leak
authorj-b-m <jb@kdenlive.org>
Fri, 24 Jul 2009 14:15:32 +0000 (16:15 +0200)
committerMarco Gittler <g.marco@freenet.de>
Sun, 26 Jul 2009 19:19:56 +0000 (21:19 +0200)
modified:   src/modules/qimage/kdenlivetitle_wrapper.cpp
modified:   src/modules/qimage/producer_kdenlivetitle.c

src/modules/qimage/kdenlivetitle_wrapper.cpp
src/modules/qimage/producer_kdenlivetitle.c

index fac8fde4951f1136758daad842a63926d2cf7c4e..822df65d7c553db773ba5f5cc03160e4361333f4 100644 (file)
@@ -21,7 +21,6 @@
 #include <QtGui/QPainter>
 #include <QtCore/QCoreApplication>
 #include <QtGui/QApplication>
-#include <QtCore/QDebug>
 #include <QtCore/QFile>
 #include <QtGui/QGraphicsScene>
 #include <QtGui/QGraphicsTextItem>
@@ -39,6 +38,12 @@ extern "C"
        {
                titleclass=new Title( QString( c ) );
        }
+
+       void close_qt()
+       {
+               delete titleclass;
+       }
+       
        void refresh_kdenlivetitle( uint8_t* buffer, int width, int height , double position, char *templatexml, char *templatetext, int force_refresh )
        {
                if (force_refresh) titleclass->reloadXml(templatexml, templatetext);
@@ -52,7 +57,8 @@ Title::Title( const QString& filename ):m_filename( filename ), m_scene( NULL )
 
 Title::~Title()
 {
-       delete m_scene;
+       if (m_scene) delete m_scene;
+       if (app) delete app;
 }
 
 void Title::reloadXml(char *templatexml, char *templatetext)
index c42e81bd096be09881e8266c2cbe215722e20216..125d36640e11df2881abec94f251e9493c19f689 100644 (file)
 #include <string.h>
 
 extern void init_qt();
-
+extern void close_qt();
 extern void refresh_kdenlivetitle( uint8_t*, int, int, double, char*, char*, int );
 
 static int producer_get_image( mlt_frame frame, uint8_t **buffer, mlt_image_format *format, int *width, int *height, int writable )
 {
-
        // Obtain properties of frame
        mlt_properties properties = MLT_FRAME_PROPERTIES( frame );
 
@@ -107,7 +106,7 @@ void producer_close( mlt_producer producer )
 {
        producer->close = NULL;
        mlt_producer_close( producer );
-
+       close_qt();
        free( producer );
 }