Skip to content

Commit 2078875

Browse files
committed
Refactor file path handling in GetFileInfoFromMasterMeg
Check filePath length before allocating ValueStringBuilder to improve efficiency. Update warning log to use filePath.ToString() for overlong paths. Reorganize normalization logic for clarity and ensure proper resource disposal.
1 parent d61fce6 commit 2078875

1 file changed

Lines changed: 11 additions & 14 deletions

File tree

src/PetroglyphTools/PG.StarWarsGame.Engine/IO/Repositories/GameRepository.Files.cs

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -100,26 +100,23 @@ protected FileFoundInfo GetFileInfoFromMasterMeg(ReadOnlySpan<char> filePath)
100100
{
101101
Debug.Assert(MasterMegArchive is not null);
102102

103-
var sb = new ValueStringBuilder(stackalloc char[Math.Max(filePath.Length, PGConstants.MaxMegEntryPathLength)]);
104-
sb.Append(filePath);
105-
PGFileSystem.NormalizePath(ref sb);
106-
107-
if (sb.Length > PGConstants.MaxMegEntryPathLength)
103+
if (filePath.Length > PGConstants.MaxMegEntryPathLength)
108104
{
109-
_logger.LogWarning("Trying to open a MEG entry which is longer than 259 characters: '{FileName}'", sb.ToString());
110-
sb.Dispose();
105+
_logger.LogWarning("Trying to open a MEG entry which is longer than 259 characters: '{FileName}'", filePath.ToString());
111106
return default;
112107
}
108+
109+
var sb = new ValueStringBuilder(stackalloc char[PGConstants.MaxMegEntryPathLength]);
110+
sb.Append(filePath);
111+
PGFileSystem.NormalizePath(ref sb);
113112

114113
Span<char> fileNameSpan = stackalloc char[PGConstants.MaxMegEntryPathLength];
115-
116-
if (!_megPathNormalizer.TryNormalize(sb.AsSpan(), fileNameSpan, out var length))
117-
{
118-
sb.Dispose();
119-
return default;
120-
}
121-
114+
115+
var normalized = _megPathNormalizer.TryNormalize(sb.AsSpan(), fileNameSpan, out var length);
122116
sb.Dispose();
117+
118+
if (!normalized)
119+
return default;
123120

124121
var fileName = fileNameSpan.Slice(0, length);
125122

0 commit comments

Comments
 (0)