cache result of IsWine

This commit is contained in:
rootdarkarchon
2024-03-15 13:02:16 +01:00
committed by Loporrit
parent 7b93c5a6e9
commit e187d67fc3
4 changed files with 19 additions and 12 deletions

View File

@@ -1,4 +1,5 @@
using MareSynchronos.MareConfiguration;
using MareSynchronos.Services;
using Microsoft.Extensions.Logging;
using System.Runtime.InteropServices;
@@ -15,12 +16,14 @@ public sealed class FileCompactor
private readonly ILogger<FileCompactor> _logger;
private readonly MareConfigService _mareConfigService;
private readonly DalamudUtilService _dalamudUtilService;
public FileCompactor(ILogger<FileCompactor> logger, MareConfigService mareConfigService)
public FileCompactor(ILogger<FileCompactor> logger, MareConfigService mareConfigService, DalamudUtilService dalamudUtilService)
{
_clusterSizes = new(StringComparer.Ordinal);
_logger = logger;
_mareConfigService = mareConfigService;
_dalamudUtilService = dalamudUtilService;
_efInfo = new WOF_FILE_COMPRESSION_INFO_V1
{
Algorithm = CompressionAlgorithm.XPRESS8K,
@@ -66,7 +69,7 @@ public sealed class FileCompactor
{
bool ntfs = isNTFS ?? string.Equals(new DriveInfo(new FileInfo(filePath).Directory!.Root.FullName).DriveFormat, "NTFS", StringComparison.OrdinalIgnoreCase);
if (Dalamud.Utility.Util.IsWine() || !ntfs) return new FileInfo(filePath).Length;
if (_dalamudUtilService.IsWine || !ntfs) return new FileInfo(filePath).Length;
var clusterSize = GetClusterSize(filePath);
if (clusterSize == -1) return new FileInfo(filePath).Length;
@@ -79,7 +82,7 @@ public sealed class FileCompactor
{
await File.WriteAllBytesAsync(filePath, decompressedFile, token).ConfigureAwait(false);
if (Dalamud.Utility.Util.IsWine() || !_mareConfigService.Current.UseCompactor)
if (_dalamudUtilService.IsWine || !_mareConfigService.Current.UseCompactor)
{
return;
}