Commit f3903fca authored by Pierre d'Herbemont's avatar Pierre d'Herbemont

modules/demux/playlist/*.c: Fix input_item memleaks.

parent 5b324033
...@@ -527,6 +527,7 @@ static int Demux( demux_t *p_demux ) ...@@ -527,6 +527,7 @@ static int Demux( demux_t *p_demux )
if( psz_moreinfo_entry ) input_item_SetURL( p_entry, psz_moreinfo_entry ); if( psz_moreinfo_entry ) input_item_SetURL( p_entry, psz_moreinfo_entry );
if( psz_abstract_entry ) input_item_SetDescription( p_entry, psz_abstract_entry ); if( psz_abstract_entry ) input_item_SetDescription( p_entry, psz_abstract_entry );
input_ItemAddSubItem( p_current_input, p_entry ); input_ItemAddSubItem( p_current_input, p_entry );
vlc_gc_decref( p_entry );
} }
/* cleanup entry */; /* cleanup entry */;
......
...@@ -266,6 +266,7 @@ static int Demux( demux_t *p_demux ) ...@@ -266,6 +266,7 @@ static int Demux( demux_t *p_demux )
msg_Err( p_playlist, "Unsupported meta bitrate" ); msg_Err( p_playlist, "Unsupported meta bitrate" );
input_ItemAddSubItem( p_current_input, p_input ); input_ItemAddSubItem( p_current_input, p_input );
vlc_gc_decref( p_input );
FREENULL( psz_name ); FREENULL( psz_name );
FREENULL( psz_mrl ); FREENULL( psz_mrl );
FREENULL( psz_genre ); FREENULL( psz_genre );
......
...@@ -119,7 +119,7 @@ static int Demux( demux_t *p_demux ) ...@@ -119,7 +119,7 @@ static int Demux( demux_t *p_demux )
input_ItemAddOption( p_input, ppsz_options[i] ); input_ItemAddOption( p_input, ppsz_options[i] );
} }
input_ItemAddSubItem( p_current_input, p_input ); input_ItemAddSubItem( p_current_input, p_input );
vlc_gc_decref( p_input );
while( i_options-- ) free( ppsz_options[i_options] ); while( i_options-- ) free( ppsz_options[i_options] );
if( ppsz_options ) free( ppsz_options ); if( ppsz_options ) free( ppsz_options );
......
...@@ -210,6 +210,7 @@ static int Demux( demux_t *p_demux ) ...@@ -210,6 +210,7 @@ static int Demux( demux_t *p_demux )
SADD_INFO( "docid", psz_docid ); SADD_INFO( "docid", psz_docid );
SADD_INFO( "description", psz_description ); SADD_INFO( "description", psz_description );
input_ItemAddSubItem( p_current_input, p_input ); input_ItemAddSubItem( p_current_input, p_input );
vlc_gc_decref( p_input );
} }
HANDLE_PLAY_AND_RELEASE; HANDLE_PLAY_AND_RELEASE;
......
...@@ -92,6 +92,7 @@ static int Demux( demux_t *p_demux ) ...@@ -92,6 +92,7 @@ static int Demux( demux_t *p_demux )
p_input = input_ItemNewExt( p_playlist, psz_url, psz_url, 0, NULL, -1 ); p_input = input_ItemNewExt( p_playlist, psz_url, psz_url, 0, NULL, -1 );
input_ItemAddSubItem( p_current_input, p_input ); input_ItemAddSubItem( p_current_input, p_input );
vlc_gc_decref( p_input );
HANDLE_PLAY_AND_RELEASE; HANDLE_PLAY_AND_RELEASE;
......
...@@ -378,7 +378,8 @@ static vlc_bool_t parse_track_dict COMPLEX_INTERFACE ...@@ -378,7 +378,8 @@ static vlc_bool_t parse_track_dict COMPLEX_INTERFACE
/* add meta info */ /* add meta info */
add_meta( p_new_input, p_track ); add_meta( p_new_input, p_track );
vlc_gc_decref( p_new_input );
p_demux->p_sys->i_ntracks++; p_demux->p_sys->i_ntracks++;
} }
else else
......
...@@ -192,6 +192,7 @@ static int Demux( demux_t *p_demux ) ...@@ -192,6 +192,7 @@ static int Demux( demux_t *p_demux )
input_ItemAddInfo( p_input, _(VLC_META_INFO_CAT), input_ItemAddInfo( p_input, _(VLC_META_INFO_CAT),
_(VLC_META_ARTIST), "%s", psz_artist ); _(VLC_META_ARTIST), "%s", psz_artist );
input_ItemAddSubItem( p_current_input, p_input ); input_ItemAddSubItem( p_current_input, p_input );
vlc_gc_decref( p_input );
free( psz_mrl ); free( psz_mrl );
} }
......
...@@ -162,6 +162,7 @@ static int Demux( demux_t *p_demux ) ...@@ -162,6 +162,7 @@ static int Demux( demux_t *p_demux )
0, NULL, -1 ); 0, NULL, -1 );
input_ItemCopyOptions( p_current_input, p_input ); input_ItemCopyOptions( p_current_input, p_input );
input_ItemAddSubItem( p_current_input, p_input ); input_ItemAddSubItem( p_current_input, p_input );
vlc_gc_decref( p_input );
} }
else else
{ {
...@@ -221,6 +222,7 @@ static int Demux( demux_t *p_demux ) ...@@ -221,6 +222,7 @@ static int Demux( demux_t *p_demux )
p_input = input_ItemNewExt( p_playlist, psz_mrl, psz_name,0, NULL, -1 ); p_input = input_ItemNewExt( p_playlist, psz_mrl, psz_name,0, NULL, -1 );
input_ItemCopyOptions( p_current_input, p_input ); input_ItemCopyOptions( p_current_input, p_input );
input_ItemAddSubItem( p_current_input, p_input ); input_ItemAddSubItem( p_current_input, p_input );
vlc_gc_decref( p_input );
free( psz_mrl_orig ); free( psz_mrl_orig );
psz_mrl = NULL; psz_mrl = NULL;
} }
......
...@@ -289,6 +289,7 @@ static int Demux( demux_t *p_demux ) ...@@ -289,6 +289,7 @@ static int Demux( demux_t *p_demux )
psz_item_size ); psz_item_size );
} }
input_ItemAddSubItem( p_current_input, p_input ); input_ItemAddSubItem( p_current_input, p_input );
vlc_gc_decref( p_input );
FREENULL( psz_item_name ); FREENULL( psz_item_name );
FREENULL( psz_item_mrl ); FREENULL( psz_item_mrl );
FREENULL( psz_item_size ); FREENULL( psz_item_size );
......
...@@ -357,11 +357,13 @@ static int Demux( demux_t *p_demux ) ...@@ -357,11 +357,13 @@ static int Demux( demux_t *p_demux )
SADD_INFO( "href", psz_href ); SADD_INFO( "href", psz_href );
SADD_INFO( "mime type", psz_mimetype ); SADD_INFO( "mime type", psz_mimetype );
input_ItemAddSubItem( p_current_input, p_input ); input_ItemAddSubItem( p_current_input, p_input );
vlc_gc_decref( p_input );
if( psz_qtnext ) if( psz_qtnext )
{ {
p_input = input_ItemNewExt( p_sys->p_playlist, p_input = input_ItemNewExt( p_sys->p_playlist,
psz_qtnext, NULL, 0, NULL, -1 ); psz_qtnext, NULL, 0, NULL, -1 );
input_ItemAddSubItem( p_current_input, p_input ); input_ItemAddSubItem( p_current_input, p_input );
vlc_gc_decref( p_input );
} }
} }
......
...@@ -405,6 +405,7 @@ static int Demux ( demux_t *p_demux ) ...@@ -405,6 +405,7 @@ static int Demux ( demux_t *p_demux )
} }
input_ItemAddSubItem( p_current_input, p_child ); input_ItemAddSubItem( p_current_input, p_child );
vlc_gc_decref( p_child );
HANDLE_PLAY_AND_RELEASE HANDLE_PLAY_AND_RELEASE
return 0; /* Needed for correct operation of go back */ return 0; /* Needed for correct operation of go back */
} }
......
...@@ -236,6 +236,7 @@ static int DemuxGenre( demux_t *p_demux ) ...@@ -236,6 +236,7 @@ static int DemuxGenre( demux_t *p_demux )
p_input ); p_input );
free( psz_mrl ); free( psz_mrl );
input_ItemAddSubItem( p_sys->p_current_input, p_input ); input_ItemAddSubItem( p_sys->p_current_input, p_input );
vlc_gc_decref( p_input );
FREENULL( psz_name ); FREENULL( psz_name );
} }
FREENULL( psz_eltname ); FREENULL( psz_eltname );
...@@ -423,7 +424,7 @@ static int DemuxStation( demux_t *p_demux ) ...@@ -423,7 +424,7 @@ static int DemuxStation( demux_t *p_demux )
if( psz_rt ) if( psz_rt )
input_item_SetRating( p_input, psz_rt ); input_item_SetRating( p_input, psz_rt );
input_ItemAddSubItem( p_sys->p_current_input, p_input ); input_ItemAddSubItem( p_sys->p_current_input, p_input );
vlc_gc_decref( p_input );
FREENULL( psz_name ); FREENULL( psz_name );
FREENULL( psz_mt ); FREENULL( psz_mt );
FREENULL( psz_id ); FREENULL( psz_id );
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment