void sms_Free( sms_stream_t *sms ) { if( sms->qlevels ) { for( int n = 0; n < vlc_array_count( sms->qlevels ); n++ ) { quality_level_t *qlevel = (quality_level_t *)vlc_array_item_at_index( sms->qlevels, n ); // sunqueen modify if( qlevel ) ql_Free( qlevel ); } vlc_array_destroy( sms->qlevels ); } if( sms->chunks ) { for( int n = 0; n < vlc_array_count( sms->chunks ); n++ ) { chunk_t *chunk = (chunk_t *)vlc_array_item_at_index( sms->chunks, n ); // sunqueen modify if( chunk) chunk_Free( chunk ); } vlc_array_destroy( sms->chunks ); } free( sms->name ); free( sms->url_template ); free( sms ); sms = NULL; }
void sms_Free( sms_stream_t *sms ) { if ( !sms ) return; FOREACH_ARRAY( quality_level_t *qlevel, sms->qlevels ); if( qlevel ) ql_Free( qlevel ); FOREACH_END(); ARRAY_RESET( sms->qlevels ); vlc_mutex_lock( &sms->chunks_lock ); while( sms->p_chunks ) { chunk_t *p_chunk = sms->p_chunks; sms->p_chunks = sms->p_chunks->p_next; chunk_Free( p_chunk ); } vlc_mutex_unlock( &sms->chunks_lock ); vlc_mutex_destroy( &sms->chunks_lock ); free( sms->name ); free( sms->url_template ); free( sms ); }