aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Horizon.Generators/CodeGenerator.cs
diff options
context:
space:
mode:
authorAndrey Sukharev <SukharevAndrey@users.noreply.github.com>2023-01-19 01:25:16 +0300
committerGitHub <noreply@github.com>2023-01-18 22:25:16 +0000
commitae4324032a48ee08a808354673f47536e76759d0 (patch)
tree90c7c6aceb14d095761a257a41e7dc6882d30d73 /Ryujinx.Horizon.Generators/CodeGenerator.cs
parentf449895e6d8af90f727de6590fd6120038c73986 (diff)
Optimize string memory usage. Use Spans and StringBuilders where possible (#3933)
* Optimize string memory usage. Use ReadOnlySpan<char> 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 <thog@protonmail.com> * Styling fix Co-authored-by: gdkchan <gab.dark.100@gmail.com> Co-authored-by: TSRBerry <20988865+TSRBerry@users.noreply.github.com> Co-authored-by: Mary-nyan <thog@protonmail.com> Co-authored-by: gdkchan <gab.dark.100@gmail.com>
Diffstat (limited to 'Ryujinx.Horizon.Generators/CodeGenerator.cs')
-rw-r--r--Ryujinx.Horizon.Generators/CodeGenerator.cs15
1 files changed, 10 insertions, 5 deletions
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()