Skip to content

Commit 501ba4b

Browse files
authored
Merge pull request github#6012 from hvitved/csharp/early-labels
C#: Populate labels earlier
2 parents 0ebf53b + 6b63e03 commit 501ba4b

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

csharp/extractor/Semmle.Extraction/Context.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,14 @@ public class Context
3535
// A recursion guard against writing to the trap file whilst writing an id to the trap file.
3636
private bool writingLabel = false;
3737

38+
private readonly Queue<IEntity> labelQueue = new();
39+
3840
protected void DefineLabel(IEntity entity)
3941
{
4042
if (writingLabel)
4143
{
4244
// Don't define a label whilst writing a label.
43-
PopulateLater(() => DefineLabel(entity));
45+
labelQueue.Enqueue(entity);
4446
}
4547
else
4648
{
@@ -52,6 +54,10 @@ protected void DefineLabel(IEntity entity)
5254
finally
5355
{
5456
writingLabel = false;
57+
if (labelQueue.Any())
58+
{
59+
DefineLabel(labelQueue.Dequeue());
60+
}
5561
}
5662
}
5763
}

0 commit comments

Comments
 (0)