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 get
{ {
if (!string.IsNullOrEmpty(PrimaryVersionId)) return GetMediaSourceCount(new Stack<Guid>());
{
var item = LibraryManager.GetItemById(PrimaryVersionId);
if (item is Video video)
{
return video.MediaSourceCount;
}
}
return LinkedAlternateVersions.Length + LocalAlternateVersions.Length + 1;
} }
} }
@ -550,5 +541,25 @@ namespace MediaBrowser.Controller.Entities
return list; 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;
}
} }
} }