From 52e5d7ff3fc231f8805d607ac61d09f9d3f9b4cc Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Sat, 26 Jul 2014 15:16:13 +0200 Subject: [PATCH] mpegts table destroy: move the data free calls to the release routine --- src/input/mpegts/mpegts_table.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/input/mpegts/mpegts_table.c b/src/input/mpegts/mpegts_table.c index 4fea27c1..e9e73a5b 100644 --- a/src/input/mpegts/mpegts_table.c +++ b/src/input/mpegts/mpegts_table.c @@ -107,6 +107,14 @@ mpegts_table_dispatch void mpegts_table_release_ ( mpegts_table_t *mt ) { + struct mpegts_table_state *st; + + while ((st = RB_FIRST(&mt->mt_state))) { + RB_REMOVE(&mt->mt_state, st, link); + free(st); + } + if (mt->mt_destroy) + mt->mt_destroy(mt); free(mt->mt_name); free(mt); } @@ -114,15 +122,8 @@ mpegts_table_release_ ( mpegts_table_t *mt ) void mpegts_table_destroy ( mpegts_table_t *mt ) { - struct mpegts_table_state *st; mt->mt_destroyed = 1; mt->mt_mux->mm_close_table(mt->mt_mux, mt); - while ((st = RB_FIRST(&mt->mt_state))) { - RB_REMOVE(&mt->mt_state, st, link); - free(st); - } - if (mt->mt_destroy) - mt->mt_destroy(mt); mpegts_table_release(mt); }