From d8f1049c27eb44a4ca982a59bb4fd9c61fdd6282 Mon Sep 17 00:00:00 2001 From: Dan Dennedy Date: Sun, 2 Jun 2013 13:46:30 -0700 Subject: [PATCH] Fix tiny memory leak in GlslManager (coverity-1026795). --- src/modules/opengl/filter_glsl_manager.cpp | 4 +++- src/modules/opengl/glsl_manager.h | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/modules/opengl/filter_glsl_manager.cpp b/src/modules/opengl/filter_glsl_manager.cpp index bb17b336..ef6eca45 100644 --- a/src/modules/opengl/filter_glsl_manager.cpp +++ b/src/modules/opengl/filter_glsl_manager.cpp @@ -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() diff --git a/src/modules/opengl/glsl_manager.h b/src/modules/opengl/glsl_manager.h index d1c87691..85f64372 100644 --- a/src/modules/opengl/glsl_manager.h +++ b/src/modules/opengl/glsl_manager.h @@ -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 -- 2.39.2