diff options
| author | Andrey Sukharev <SukharevAndrey@users.noreply.github.com> | 2023-01-19 01:25:16 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-18 22:25:16 +0000 |
| commit | ae4324032a48ee08a808354673f47536e76759d0 (patch) | |
| tree | 90c7c6aceb14d095761a257a41e7dc6882d30d73 /Ryujinx.Horizon.Generators/CodeGenerator.cs | |
| parent | f449895e6d8af90f727de6590fd6120038c73986 (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.cs | 15 |
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() |
