Cache regex instances in most cases (#27699)

Using static Regex functions that take in a pattern is bad because the pattern constantly needs to be re-parsed. With https://github.com/space-wizards/RobustToolbox/pull/5107, the engine has an analyzer to warn for this practice now.

This commit brings most of content up to snuff already, though some of the tricker code I left for somebody else.
This commit is contained in:
Pieter-Jan Briers
2024-05-06 00:57:32 +02:00
committed by GitHub
parent 70d3cf7ba4
commit 4a2a63a86b
10 changed files with 74 additions and 60 deletions

View File

@@ -5,6 +5,9 @@ namespace Content.Server.Speech.EntitySystems;
public sealed class MothAccentSystem : EntitySystem
{
private static readonly Regex RegexLowerBuzz = new Regex("z{1,3}");
private static readonly Regex RegexUpperBuzz = new Regex("Z{1,3}");
public override void Initialize()
{
base.Initialize();
@@ -16,10 +19,10 @@ public sealed class MothAccentSystem : EntitySystem
var message = args.Message;
// buzzz
message = Regex.Replace(message, "z{1,3}", "zzz");
message = RegexLowerBuzz.Replace(message, "zzz");
// buZZZ
message = Regex.Replace(message, "Z{1,3}", "ZZZ");
message = RegexUpperBuzz.Replace(message, "ZZZ");
args.Message = message;
}
}