From ae4324032a48ee08a808354673f47536e76759d0 Mon Sep 17 00:00:00 2001 From: Andrey Sukharev Date: Thu, 19 Jan 2023 01:25:16 +0300 Subject: Optimize string memory usage. Use Spans and StringBuilders where possible (#3933) * Optimize string memory usage. Use ReadOnlySpan and StringBuilder where possible. * Fix copypaste error * Code generator review fixes * Use if statement instead of switch * Code style fixes Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> * Another code style fix * Styling fix Co-authored-by: Mary-nyan * Styling fix Co-authored-by: gdkchan Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> Co-authored-by: Mary-nyan Co-authored-by: gdkchan --- Ryujinx.Horizon.Generators/CodeGenerator.cs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'Ryujinx.Horizon.Generators/CodeGenerator.cs') diff --git a/Ryujinx.Horizon.Generators/CodeGenerator.cs b/Ryujinx.Horizon.Generators/CodeGenerator.cs index 3a479eb7..29e1c75c 100644 --- a/Ryujinx.Horizon.Generators/CodeGenerator.cs +++ b/Ryujinx.Horizon.Generators/CodeGenerator.cs @@ -4,9 +4,10 @@ namespace Ryujinx.Horizon.Generators { class CodeGenerator { - private const string Indent = " "; + private const int IndentLength = 4; + private readonly StringBuilder _sb; - private string _currentIndent; + private int _currentIndentCount; public CodeGenerator() { @@ -32,12 +33,15 @@ namespace Ryujinx.Horizon.Generators public void IncreaseIndentation() { - _currentIndent += Indent; + _currentIndentCount++; } public void DecreaseIndentation() { - _currentIndent = _currentIndent.Substring(0, _currentIndent.Length - Indent.Length); + if (_currentIndentCount - 1 >= 0) + { + _currentIndentCount--; + } } public void AppendLine() @@ -47,7 +51,8 @@ namespace Ryujinx.Horizon.Generators public void AppendLine(string text) { - _sb.AppendLine(_currentIndent + text); + _sb.Append(' ', IndentLength * _currentIndentCount); + _sb.AppendLine(text); } public override string ToString() -- cgit v1.2.3