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>
This commit is contained in:
parent
f449895e6d
commit
ae4324032a
19 changed files with 118 additions and 81 deletions
|
@ -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()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue