]> git.sesse.net Git - vlc/commitdiff
macosx/framework: Fix a bunch of leaks in -[VLCMediaPlayer videoSubTitles].
authorPierre d'Herbemont <pdherbemont@free.fr>
Sun, 24 Jan 2010 10:46:00 +0000 (11:46 +0100)
committerPierre d'Herbemont <pdherbemont@free.fr>
Sun, 24 Jan 2010 14:48:25 +0000 (15:48 +0100)
projects/macosx/framework/Sources/VLCMediaPlayer.m

index 51b535eb8b6adb20f9160402c1de366489eb32fa..0c48bb59ea554c5c09c6cb94b63fa6b3f6a1defc 100644 (file)
@@ -316,18 +316,14 @@ static void HandleMediaPlayerMediaChanged(const libvlc_event_t * event, void * s
 
 - (NSArray *)videoSubTitles
 {
-    libvlc_exception_t ex;
-    libvlc_exception_init( &ex );
-    NSInteger count = libvlc_video_get_spu_count( instance, &ex );
-    catch_exception( &ex );
-
-    libvlc_track_description_t *tracks = libvlc_video_get_spu_description( instance, &ex );
+    libvlc_track_description_t *currentTrack = libvlc_video_get_spu_description( instance, &ex );
     NSMutableArray *tempArray = [NSMutableArray array];
-    NSInteger i;
-    for (i = 0; i < count; i++)
-    {
-        [tempArray addObject:[NSString stringWithUTF8String: tracks->psz_name]];
-        tracks = tracks->p_next;
+    while (currentTrack) {
+        [tempArray addObject:[NSString stringWithUTF8String:currentTrack->psz_name]];
+        free(currentTrack->psz_name);
+        libvlc_track_description_t *tofree = currentTrack;
+        currentTrack = currentTrack->p_next;
+        free(tofree);
     }
     return [NSArray arrayWithArray: tempArray];
 }