Browse Source

server browsing: stability improvements

Felix Paul Kühne 9 years ago
parent
commit
f56126048a

+ 2 - 0
Apple-TV/VLCServerListTVViewController.m

@@ -125,6 +125,8 @@
 
     NSIndexPath *discoveryIndexPath = self.indexPaths[indexPath.row];
     id<VLCLocalNetworkService> service = [self.discoveryController networkServiceForIndexPath:discoveryIndexPath];
+    if (service == nil)
+        return browsingCell;
 
     browsingCell.isDirectory = YES;
     browsingCell.title = service.title;

+ 3 - 1
SharedSources/ServerBrowsing/General/VLCLocalNetworkServiceBrowserMediaDiscoverer.m

@@ -67,7 +67,9 @@
 }
 - (id<VLCLocalNetworkService>)networkServiceForIndex:(NSUInteger)index {
     VLCMedia *media = [self.mediaDiscoverer.discoveredMedia mediaAtIndex:index];
-    return [[VLCLocalNetworkServiceVLCMedia alloc] initWithMediaItem:media];
+    if (media)
+        return [[VLCLocalNetworkServiceVLCMedia alloc] initWithMediaItem:media];
+    return nil;
 }
 
 #pragma mark - VLCMediaListDelegate

+ 3 - 1
SharedSources/ServerBrowsing/General/VLCLocalNetworkServiceBrowserNetService.m

@@ -76,7 +76,9 @@
     _discovering = NO;
 }
 - (id<VLCLocalNetworkService>)networkServiceForIndex:(NSUInteger)index {
-    return self.resolvedLocalNetworkServices[index];
+    if (index < _resolvedLocalNetworkServices.count)
+        return self.resolvedLocalNetworkServices[index];
+    return nil;
 }
 
 #pragma mark - NSNetServiceBrowserDelegate

+ 3 - 1
SharedSources/ServerBrowsing/SAP/VLCLocalNetworkServiceBrowserSAP.m

@@ -22,7 +22,9 @@
 
 - (id<VLCLocalNetworkService>)networkServiceForIndex:(NSUInteger)index {
     VLCMedia *media = [self.mediaDiscoverer.discoveredMedia mediaAtIndex:index];
-    return [[VLCLocalNetworkServiceSAP alloc] initWithMediaItem:media];
+    if (media)
+        return [[VLCLocalNetworkServiceSAP alloc] initWithMediaItem:media];
+    return nil;
 }
 
 @end

+ 3 - 1
SharedSources/ServerBrowsing/SMB/VLCLocalNetworkServiceBrowserDSM.m

@@ -28,7 +28,9 @@
 }
 - (id<VLCLocalNetworkService>)networkServiceForIndex:(NSUInteger)index {
     VLCMedia *media = [self.mediaDiscoverer.discoveredMedia mediaAtIndex:index];
-    return [[VLCLocalNetworkServiceDSM alloc] initWithMediaItem:media];
+    if (media)
+        return [[VLCLocalNetworkServiceDSM alloc] initWithMediaItem:media];
+    return nil;
 }
 
 @end

+ 3 - 1
SharedSources/ServerBrowsing/UPnP/VLCLocalNetworkServiceBrowserUPnP.m

@@ -46,7 +46,9 @@
 }
 
 - (id<VLCLocalNetworkService>)networkServiceForIndex:(NSUInteger)index {
-    return _filteredUPNPDevices[index];
+    if (index < _filteredUPNPDevices.count)
+        return _filteredUPNPDevices[index];
+    return nil;
 }
 
 - (void)startDiscovery {