From 007cabfdbfcc62f885076390b2db330c68415220 Mon Sep 17 00:00:00 2001 From: prince Date: Mon, 17 Jun 2013 15:07:48 +0530 Subject: [PATCH] [Libremix] Memory leaks in libremix module. Change-Id: I0d01937b730f85d2ea7638ef6dc351be6566c03b --- src/libremix/remix_deck.c | 5 ++--- src/libremix/remix_sndfile.c | 18 ++++++++++++++++-- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/libremix/remix_deck.c b/src/libremix/remix_deck.c index febf842..2d44a0b 100644 --- a/src/libremix/remix_deck.c +++ b/src/libremix/remix_deck.c @@ -92,9 +92,8 @@ static int remix_deck_destroy (RemixEnv * env, RemixBase * base) { RemixDeck * deck = (RemixDeck *)base; - //Just call destructor but dont delete item which is removed already. - //remix_destroy_list (env, deck->tracks); - cd_list_call_destroy(env, deck->tracks, (CDDestroyFunc)remix_destroy); + + remix_destroy_list (env, deck->tracks); remix_destroy (env, (RemixBase *)deck->_mixstream); remix_free (deck); return 0; diff --git a/src/libremix/remix_sndfile.c b/src/libremix/remix_sndfile.c index 59d3da8..601cfbc 100644 --- a/src/libremix/remix_sndfile.c +++ b/src/libremix/remix_sndfile.c @@ -273,6 +273,20 @@ remix_sndfile_seek (RemixEnv * env, RemixBase * base, RemixCount offset) return sf_seek (si->file, offset, SEEK_SET); } +static int +remix_sndfile_reader_destroy (RemixEnv * env, RemixPlugin * plugin) +{ + cd_set_free (env, plugin->init_scheme); + return 0; +} + +static int +remix_sndfile_writer_destroy (RemixEnv * env, RemixPlugin * plugin) +{ + cd_set_free (env, plugin->init_scheme); + return 0; +} + static struct _RemixMethods _remix_sndfile_reader_methods = { remix_sndfile_clone, remix_sndfile_destroy, @@ -388,7 +402,7 @@ static struct _RemixPlugin sndfile_reader_plugin = { CD_EMPTY_SET, /* process scheme */ NULL, /* suggests */ NULL, /* plugin data */ - NULL /* destroy */ + remix_sndfile_reader_destroy /* destroy */ }; static struct _RemixPlugin sndfile_writer_plugin = { @@ -399,7 +413,7 @@ static struct _RemixPlugin sndfile_writer_plugin = { CD_EMPTY_SET, /* process scheme */ NULL, /* suggests */ NULL, /* plugin data */ - NULL /* destroy */ + remix_sndfile_writer_destroy /* destroy */ }; /* module init function */ -- 2.7.4