Review usage of string.Substring (part 1)

Reduced allocations by replacing string.Substring with ReadOnlySpan<char>.Slice
This commit is contained in:
Bond_009
2020-07-22 13:34:51 +02:00
parent 0750357916
commit febb6bced6
25 changed files with 124 additions and 99 deletions

View File

@@ -44,7 +44,7 @@ namespace Emby.Server.Implementations.Services
var pos = pathInfo.LastIndexOf('.');
if (pos != -1)
{
var format = pathInfo.Substring(pos + 1);
var format = pathInfo.AsSpan().Slice(pos + 1);
contentType = GetFormatContentType(format);
if (contentType != null)
{
@@ -55,15 +55,18 @@ namespace Emby.Server.Implementations.Services
return pathInfo;
}
private static string GetFormatContentType(string format)
private static string GetFormatContentType(ReadOnlySpan<char> format)
{
// built-in formats
switch (format)
if (format.Equals("json", StringComparison.Ordinal))
{
case "json": return "application/json";
case "xml": return "application/xml";
default: return null;
return "application/json";
}
else if (format.Equals("xml", StringComparison.Ordinal))
{
return "application/xml";
}
return null;
}
public async Task ProcessRequestAsync(HttpListenerHost httpHost, IRequest httpReq, HttpResponse httpRes, ILogger logger, CancellationToken cancellationToken)