Fix array bounds issues with album shuffle builder

The shuffle list builder was encountering errors when some album tags or
empty album tags led to empty lists.

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
CQTexperiment
Christopher Snowhill 2022-02-10 01:14:42 -08:00
parent f203911bb1
commit 5330295a97
1 changed files with 5 additions and 3 deletions

View File

@ -894,7 +894,7 @@ static inline void dispatch_sync_reentrant(dispatch_queue_t queue, dispatch_bloc
if([album length] > 0)
predicate = [NSPredicate predicateWithFormat:@"album like %@", album];
else
predicate = [NSPredicate predicateWithFormat:@"album == nil"];
predicate = [NSPredicate predicateWithFormat:@"album == nil || album like %@", @""];
return [[self arrangedObjects] filteredArrayUsingPredicate:predicate];
}
@ -960,7 +960,8 @@ static inline void dispatch_sync_reentrant(dispatch_queue_t queue, dispatch_bloc
NSArray *albumContent = [self filterPlaylistOnAlbum:album];
NSArray *sortedContent =
[albumContent sortedArrayUsingDescriptors:@[sortDescriptor]];
[temp addObject:sortedContent[0]];
if(sortedContent && [sortedContent count])
[temp addObject:sortedContent[0]];
}
NSArray *tempList = [Shuffle shuffleList:temp];
temp = [[NSMutableArray alloc] init];
@ -970,7 +971,8 @@ static inline void dispatch_sync_reentrant(dispatch_queue_t queue, dispatch_bloc
NSArray *albumContent = [self filterPlaylistOnAlbum:album];
NSArray *sortedContent =
[albumContent sortedArrayUsingDescriptors:@[sortDescriptor]];
[temp addObjectsFromArray:sortedContent];
if(sortedContent && [sortedContent count])
[temp addObjectsFromArray:sortedContent];
}
return temp;
}