瀏覽代碼

player: fix potential runtime exception when returning titles and minor code optimization

Felix Paul Kühne 10 年之前
父節點
當前提交
461fc07b16
共有 1 個文件被更改,包括 7 次插入2 次删除
  1. 7 2
      Sources/VLCMediaPlayer.m

+ 7 - 2
Sources/VLCMediaPlayer.m

@@ -680,10 +680,15 @@ static void HandleMediaPlayerMediaChanged(const libvlc_event_t * event, void * s
 
 - (NSArray *)titles
 {
+    NSUInteger count = [self countOfTitles];
+    if (count == 0)
+        return [NSArray array];
+
     libvlc_track_description_t *tracks = libvlc_video_get_title_description(_playerInstance);
     NSMutableArray *tempArray = [NSMutableArray array];
-    for (NSInteger i = 0; i < [self countOfTitles] ; i++) {
-        [tempArray addObject:@(tracks->psz_name)];
+    for (NSInteger i = 0; i < count; i++) {
+        if (tracks->psz_name != nil)
+            [tempArray addObject:@(tracks->psz_name)];
         tracks = tracks->p_next;
     }
     libvlc_track_description_list_release(tracks);