Merge pull request #12907 from JPVenson/bugfix/10.10/SourceCountstackoverflow

Fix stackoverflow in MediaSourceCount
This commit is contained in:
Bond-009 2025-03-10 14:34:50 +01:00 committed by GitHub
commit 069b518ab0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -152,16 +152,7 @@ namespace MediaBrowser.Controller.Entities
{ {
get get
{ {
if (!string.IsNullOrEmpty(PrimaryVersionId)) return GetMediaSourceCount(new HashSet<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(HashSet<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.Add(video.Id);
return video.GetMediaSourceCount(callstack);
}
}
return LinkedAlternateVersions.Length + LocalAlternateVersions.Length + 1;
}
} }
} }