summaryrefslogtreecommitdiff
path: root/libavutil/tests
diff options
context:
space:
mode:
authorThomas Turner <thomastdt@googlemail.com>2016-12-27 18:43:19 -0800
committerMichael Niedermayer <michael@niedermayer.cc>2016-12-31 17:20:06 +0100
commit1bfb4587a2e5b25ed15f742149e555efc8f305ae (patch)
tree953d6b0d757bc0f2941fa995224f4dc34bd47192 /libavutil/tests
parent11b7cad3dc1797ed76725ba3cfba2df1a987eec7 (diff)
avutil/tests/audio_fifo.c: Memory leak and tab space fixes
Prevents memory leak when read_samples_from_audio_fifo() is called more than once by deallocating before reallocating more memory. Fixes space indentation for contents in ERROR(). Signed-off-by: Thomas Turner <thomastdt@googlemail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavutil/tests')
-rw-r--r--libavutil/tests/audio_fifo.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/libavutil/tests/audio_fifo.c b/libavutil/tests/audio_fifo.c
index 4a82a50a26..861cebb181 100644
--- a/libavutil/tests/audio_fifo.c
+++ b/libavutil/tests/audio_fifo.c
@@ -45,10 +45,19 @@ static const TestStruct test_struct[] = {
{.format = AV_SAMPLE_FMT_FLTP , .nb_ch = 2, .data_planes = {data_FLT, data_FLT+6, }, .nb_samples_pch = 6 }
};
+static void free_data_planes(AVAudioFifo *afifo, void **output_data)
+{
+ int i;
+ for (i = 0; i < afifo->nb_buffers; ++i){
+ av_freep(&output_data[i]);
+ }
+ av_freep(&output_data);
+}
+
static void ERROR(const char *str)
{
- fprintf(stderr, "%s\n", str);
- exit(1);
+ fprintf(stderr, "%s\n", str);
+ exit(1);
}
static void print_audio_bytes(const TestStruct *test_sample, void **data_planes, int nb_samples)
@@ -80,6 +89,8 @@ static int read_samples_from_audio_fifo(AVAudioFifo* afifo, void ***output, int
void **data_planes = av_malloc_array(afifo->nb_buffers, sizeof(void*));
if (!data_planes)
ERROR("failed to allocate memory!");
+ if (*output)
+ free_data_planes(afifo, *output);
*output = data_planes;
for (i = 0; i < afifo->nb_buffers; ++i){
@@ -173,10 +184,7 @@ static void test_function(const TestStruct test_sample)
}
/* deallocate */
- for (i = 0; i < afifo->nb_buffers; ++i){
- av_freep(&output_data[i]);
- }
- av_freep(&output_data);
+ free_data_planes(afifo, output_data);
av_audio_fifo_free(afifo);
}