Reduce string allocations in SetFromMnemonic
This commit is contained in:
parent
17ed62b39e
commit
fdf63900b6
|
@ -86,21 +86,26 @@ namespace BizHawk.Client.Common
|
||||||
{
|
{
|
||||||
if (!string.IsNullOrWhiteSpace(mnemonic))
|
if (!string.IsNullOrWhiteSpace(mnemonic))
|
||||||
{
|
{
|
||||||
var trimmed = mnemonic.Replace("|", "");
|
|
||||||
var iterator = 0;
|
var iterator = 0;
|
||||||
|
|
||||||
foreach (var key in ControlsOrdered)
|
foreach (var key in ControlsOrdered)
|
||||||
{
|
{
|
||||||
|
while (mnemonic[iterator] == '|') iterator++;
|
||||||
|
|
||||||
if (key.IsBool)
|
if (key.IsBool)
|
||||||
{
|
{
|
||||||
_myBoolButtons[key.Name] = trimmed[iterator] != '.';
|
_myBoolButtons[key.Name] = mnemonic[iterator] != '.';
|
||||||
iterator++;
|
iterator++;
|
||||||
}
|
}
|
||||||
else if (key.IsAxis)
|
else if (key.IsAxis)
|
||||||
{
|
{
|
||||||
var commaIndex = trimmed.Substring(iterator).IndexOf(',');
|
var commaIndex = mnemonic.IndexOf(',', iterator);
|
||||||
var temp = trimmed.Substring(iterator, commaIndex);
|
#if NET6_0_OR_GREATER
|
||||||
var val = int.Parse(temp.Trim());
|
var val = int.Parse(mnemonic.AsSpan(iterator, commaIndex));
|
||||||
|
#else
|
||||||
|
var axisValueString = mnemonic.Substring(iterator, commaIndex);
|
||||||
|
var val = int.Parse(axisValueString);
|
||||||
|
#endif
|
||||||
_myAxisControls[key.Name] = val;
|
_myAxisControls[key.Name] = val;
|
||||||
|
|
||||||
iterator += commaIndex + 1;
|
iterator += commaIndex + 1;
|
||||||
|
|
Loading…
Reference in New Issue