Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ExpressionParser: Get rid of some redundant copies #12400

Merged
merged 3 commits into from Dec 12, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
16 changes: 8 additions & 8 deletions Source/Core/InputCommon/ControlReference/ExpressionParser.cpp
Expand Up @@ -248,7 +248,7 @@ ParseStatus Lexer::Tokenize(std::vector<Token>& tokens)
class ControlExpression : public Expression
{
public:
explicit ControlExpression(ControlQualifier qualifier) : m_qualifier(qualifier) {}
explicit ControlExpression(ControlQualifier qualifier) : m_qualifier(std::move(qualifier)) {}

ControlState GetValue() const override
{
Expand Down Expand Up @@ -438,7 +438,7 @@ class LiteralExpression : public Expression
class LiteralReal : public LiteralExpression
{
public:
LiteralReal(ControlState value) : m_value(value) {}
explicit LiteralReal(ControlState value) : m_value(value) {}

ControlState GetValue() const override { return m_value; }

Expand All @@ -448,7 +448,7 @@ class LiteralReal : public LiteralExpression
const ControlState m_value{};
};

static ParseResult MakeLiteralExpression(Token token)
static ParseResult MakeLiteralExpression(const Token& token)
{
ControlState val{};
if (TryParse(token.data, &val))
Expand All @@ -460,7 +460,7 @@ static ParseResult MakeLiteralExpression(Token token)
class VariableExpression : public Expression
{
public:
VariableExpression(std::string name) : m_name(name) {}
explicit VariableExpression(std::string name) : m_name(std::move(name)) {}

ControlState GetValue() const override { return m_variable_ptr ? *m_variable_ptr : 0; }

Expand All @@ -485,7 +485,7 @@ class VariableExpression : public Expression
class HotkeyExpression : public Expression
{
public:
HotkeyExpression(std::vector<std::unique_ptr<ControlExpression>> inputs)
explicit HotkeyExpression(std::vector<std::unique_ptr<ControlExpression>> inputs)
: m_modifiers(std::move(inputs))
{
m_final_input = std::move(m_modifiers.back());
Expand Down Expand Up @@ -600,15 +600,15 @@ class CoalesceExpression : public Expression
std::unique_ptr<Expression> m_rhs;
};

std::shared_ptr<Device> ControlEnvironment::FindDevice(ControlQualifier qualifier) const
std::shared_ptr<Device> ControlEnvironment::FindDevice(const ControlQualifier& qualifier) const
{
if (qualifier.has_device)
return container.FindDevice(qualifier.device_qualifier);
else
return container.FindDevice(default_device);
}

Device::Input* ControlEnvironment::FindInput(ControlQualifier qualifier) const
Device::Input* ControlEnvironment::FindInput(const ControlQualifier& qualifier) const
{
const std::shared_ptr<Device> device = FindDevice(qualifier);
if (!device)
Expand All @@ -617,7 +617,7 @@ Device::Input* ControlEnvironment::FindInput(ControlQualifier qualifier) const
return device->FindInput(qualifier.control_name);
}

Device::Output* ControlEnvironment::FindOutput(ControlQualifier qualifier) const
Device::Output* ControlEnvironment::FindOutput(const ControlQualifier& qualifier) const
{
const std::shared_ptr<Device> device = FindDevice(qualifier);
if (!device)
Expand Down
6 changes: 3 additions & 3 deletions Source/Core/InputCommon/ControlReference/ExpressionParser.h
Expand Up @@ -150,9 +150,9 @@ class ControlEnvironment
{
}

std::shared_ptr<Core::Device> FindDevice(ControlQualifier qualifier) const;
Core::Device::Input* FindInput(ControlQualifier qualifier) const;
Core::Device::Output* FindOutput(ControlQualifier qualifier) const;
std::shared_ptr<Core::Device> FindDevice(const ControlQualifier& qualifier) const;
Core::Device::Input* FindInput(const ControlQualifier& qualifier) const;
Core::Device::Output* FindOutput(const ControlQualifier& qualifier) const;
// Returns an existing variable by the specified name if already existing. Creates it otherwise.
std::shared_ptr<ControlState> GetVariablePtr(const std::string& name);

Expand Down