]> git.sesse.net Git - vlc/blobdiff - src/control/media_player.c
Merge branch '1.0-bugfix'
[vlc] / src / control / media_player.c
index 0ef1e65c0d516165b3542a49f0d093151b45c45c..ce4cd0b1a8055760e8c2992e391dc17a45edf375 100644 (file)
@@ -391,8 +391,7 @@ static void libvlc_media_player_destroy( libvlc_media_player_t *p_mi )
         release_input_thread( p_mi, true );
 
     libvlc_event_manager_release( p_mi->p_event_manager );
-    if( p_mi->p_md )
-        libvlc_media_release( p_mi->p_md );
+    libvlc_media_release( p_mi->p_md );
     vlc_mutex_destroy( &p_mi->object_lock );
     free( p_mi );
 }
@@ -1176,15 +1175,18 @@ libvlc_track_description_t *
     var_Change( p_input, psz_variable, VLC_VAR_GETLIST, &val_list, &text_list);
 
     if( val_list.p_list->i_count <= 0 ) /* no tracks */
+    {
+        var_FreeList( &val_list, &text_list);
+        vlc_object_release( p_input );
         return NULL;
+    }
 
     libvlc_track_description_t *p_track_description, *p_actual, *p_previous;
     p_track_description = ( libvlc_track_description_t * )
         malloc( sizeof( libvlc_track_description_t ) );
     if ( !p_track_description )
     {
-        var_Change( p_input, psz_variable, VLC_VAR_FREELIST,
-                    &val_list, &text_list);
+        var_FreeList( &val_list, &text_list);
         vlc_object_release( p_input );
         libvlc_exception_raise( p_e, "no enough memory" );
         return NULL;
@@ -1200,8 +1202,7 @@ libvlc_track_description_t *
             if ( !p_actual )
             {
                 libvlc_track_description_release( p_track_description );
-                var_Change( p_input, psz_variable, VLC_VAR_FREELIST,
-                            &val_list, &text_list);
+                var_FreeList( &val_list, &text_list);
                 vlc_object_release( p_input );
                 libvlc_exception_raise( p_e, "no enough memory" );
                 return NULL;
@@ -1215,7 +1216,7 @@ libvlc_track_description_t *
         p_previous = p_actual;
         p_actual =  NULL;
     }
-    var_Change( p_input, psz_variable, VLC_VAR_FREELIST, &val_list, &text_list);
+    var_FreeList( &val_list, &text_list);
     vlc_object_release( p_input );
 
     return p_track_description;