]> git.sesse.net Git - mlt/commitdiff
Fix tiny memory leak in GlslManager (coverity-1026795).
authorDan Dennedy <dan@dennedy.org>
Sun, 2 Jun 2013 20:46:30 +0000 (13:46 -0700)
committerDan Dennedy <dan@dennedy.org>
Sun, 2 Jun 2013 21:54:41 +0000 (14:54 -0700)
src/modules/opengl/filter_glsl_manager.cpp
src/modules/opengl/glsl_manager.h

index bb17b3366d5f1fc7a23756f29e296c3e9d2d3feb..ef6eca45e9bf4be340adf9d2b4819f572a1f3a90 100644 (file)
@@ -40,6 +40,7 @@ void deleteManager(GlslManager *p)
 GlslManager::GlslManager()
        : Mlt::Filter( mlt_filter_new() )
        , pbo(0)
+       , initEvent(0)
 {
        mlt_filter filter = get_filter();
        if ( filter ) {
@@ -49,7 +50,7 @@ GlslManager::GlslManager()
                        (mlt_destructor) deleteManager, NULL);
 
                mlt_events_register( get_properties(), "init glsl", NULL );
-               listen("init glsl", this, (mlt_listener) GlslManager::onInit);
+               initEvent = listen("init glsl", this, (mlt_listener) GlslManager::onInit);
        }
 }
 
@@ -61,6 +62,7 @@ GlslManager::~GlslManager()
        while (texture_list.peek_back())
                delete (glsl_texture) texture_list.pop_back();
        delete pbo;
+       delete initEvent;
 }
 
 GlslManager* GlslManager::get_instance()
index d1c876918b8b5491c02efe6b2df0ccf721dcd865..85f64372b1b62e21b9b9c9a25b0aa8370831b15e 100644 (file)
@@ -66,6 +66,7 @@ typedef struct glsl_pbo_s *glsl_pbo;
 class Effect;
 class EffectChain;
 class MltInput;
+class Mlt::Event;
 
 class GlslManager : public Mlt::Filter
 {
@@ -100,6 +101,7 @@ private:
        Mlt::Deque texture_list;
        glsl_pbo  pbo;
        EffectChain* current_chain;
+       Mlt::Event* initEvent;
 };
 
 #endif // GLSL_MANAGER_H