Fixed Stackoverflow on MediaSourceCount

This commit is contained in:
JPVenson 2024-10-29 14:10:58 +00:00
parent c6629aebf8
commit 34f3ed0a4d

View File

@ -152,16 +152,7 @@ namespace MediaBrowser.Controller.Entities
{
get
{
if (!string.IsNullOrEmpty(PrimaryVersionId))
{
var item = LibraryManager.GetItemById(PrimaryVersionId);
if (item is Video video)
{
return video.MediaSourceCount;
}
}
return LinkedAlternateVersions.Length + LocalAlternateVersions.Length + 1;
return GetMediaSourceCount(new Stack<Guid>());
}
}
@ -550,5 +541,25 @@ namespace MediaBrowser.Controller.Entities
return list;
}
private int GetMediaSourceCount(Stack<Guid> callstack)
{
if (!string.IsNullOrEmpty(PrimaryVersionId))
{
var item = LibraryManager.GetItemById(PrimaryVersionId);
if (item is Video video)
{
if (callstack.Contains(video.Id))
{
return video.LinkedAlternateVersions.Length + video.LocalAlternateVersions.Length + 1;
}
callstack.Push(video.Id);
return video.GetMediaSourceCount(callstack);
}
}
return LinkedAlternateVersions.Length + LocalAlternateVersions.Length + 1;
}
}
}