From dad7a6fdf6f345969f10942257af6b3d0d61fd9a Mon Sep 17 00:00:00 2001 From: Joe Rogers <1337joe@gmail.com> Date: Fri, 4 Mar 2022 15:58:01 +0100 Subject: [PATCH] Switch to using spans for string comparison --- .../MediaInfo/MediaInfoResolver.cs | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/MediaBrowser.Providers/MediaInfo/MediaInfoResolver.cs b/MediaBrowser.Providers/MediaInfo/MediaInfoResolver.cs index d1594a9679..9338272079 100644 --- a/MediaBrowser.Providers/MediaInfo/MediaInfoResolver.cs +++ b/MediaBrowser.Providers/MediaInfo/MediaInfoResolver.cs @@ -149,8 +149,6 @@ namespace MediaBrowser.Providers.MediaInfo return Array.Empty(); } - var externalPathInfos = new List(); - var files = directoryService.GetFilePaths(folder, clearCache).ToList(); var internalMetadataPath = video.GetInternalMetadataPath(); if (_fileSystem.DirectoryExists(internalMetadataPath)) @@ -163,14 +161,15 @@ namespace MediaBrowser.Providers.MediaInfo return Array.Empty(); } + var externalPathInfos = new List(); + ReadOnlySpan prefix = video.FileNameWithoutExtension; foreach (var file in files) { - var prefixLength = video.FileNameWithoutExtension.Length; - var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(file); - if (video.FileNameWithoutExtension.Equals(fileNameWithoutExtension[..prefixLength], StringComparison.OrdinalIgnoreCase) - && (fileNameWithoutExtension.Length == prefixLength || _namingOptions.MediaFlagDelimiters.Contains(fileNameWithoutExtension[prefixLength]))) + var fileNameWithoutExtension = Path.GetFileNameWithoutExtension(file.AsSpan()); + if (prefix.Equals(fileNameWithoutExtension[..prefix.Length], StringComparison.OrdinalIgnoreCase) + && (fileNameWithoutExtension.Length == prefix.Length || _namingOptions.MediaFlagDelimiters.Contains(fileNameWithoutExtension[prefix.Length]))) { - var externalPathInfo = _externalPathParser.ParseFile(file, fileNameWithoutExtension[prefixLength..]); + var externalPathInfo = _externalPathParser.ParseFile(file, fileNameWithoutExtension[prefix.Length..].ToString()); if (externalPathInfo != null) {