Skip to content

Commit 61a5235

Browse files
committed
C#: Only use small files during file content reference analysis.
1 parent a81d982 commit 61a5235

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/DependencyManager.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,8 @@ public DependencyManager(string srcDir, IDependencyOptions options, ILogger logg
6060

6161
packageDirectory = new TemporaryDirectory(ComputeTempDirectory(sourceDir.FullName));
6262
var allFiles = GetFiles("*.*").ToList();
63-
this.fileContent = new FileContent(progressMonitor, GetFileNames(allFiles));
63+
var smallFiles = GetSmallFiles(allFiles);
64+
this.fileContent = new FileContent(progressMonitor, GetFileNames(smallFiles));
6465
this.allSources = GetFileNames(allFiles, ".cs").ToList();
6566
var allProjects = GetFileNames(allFiles, ".csproj");
6667
var solutions = options.SolutionFile is not null
@@ -194,6 +195,20 @@ private IEnumerable<FileInfo> GetFiles(string pattern, bool recurseSubdirectorie
194195
private static IEnumerable<string> GetFileNames(IEnumerable<FileInfo> files, params string[] extensions) =>
195196
files.Where(fi => !extensions.Any() || extensions.Contains(fi.Extension)).Select(fi => fi.FullName);
196197

198+
private IEnumerable<FileInfo> GetSmallFiles(IEnumerable<FileInfo> files)
199+
{
200+
const int oneMb = 1_048_576;
201+
return files.Where(file =>
202+
{
203+
if (file.Length > oneMb)
204+
{
205+
progressMonitor.LogDebug($"Skipping {file.FullName} because it is bigger than 1MB.");
206+
return false;
207+
}
208+
return true;
209+
});
210+
}
211+
197212
/// <summary>
198213
/// Computes a unique temp directory for the packages associated
199214
/// with this source tree. Use a SHA1 of the directory name.

csharp/extractor/Semmle.Extraction.CSharp.DependencyFetching/ProgressMonitor.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public void Log(Severity severity, string message) =>
1818
public void LogInfo(string message) =>
1919
logger.Log(Severity.Info, message);
2020

21-
private void LogDebug(string message) =>
21+
public void LogDebug(string message) =>
2222
logger.Log(Severity.Debug, message);
2323

2424
private void LogError(string message) =>

0 commit comments

Comments
 (0)