summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControlReference/ControlReference.cpp
diff options
context:
space:
mode:
authorMichael Maltese <michaeljosephmaltese@gmail.com>2016-12-09 13:57:01 -0800
committerMichael Maltese <michaeljosephmaltese@gmail.com>2017-02-07 22:59:29 -0800
commit2d51bf579f4c782951a3b9e7cd40327cdeb8b6b6 (patch)
treebf35f8d8b78e6ae9a107740d8a532cb892b6f7af /Source/Core/InputCommon/ControlReference/ControlReference.cpp
parent492d5b6ac7294ae183d47493b144ca0b3b4a7c2c (diff)
ControlReference: put parsed_expression in a unique_ptr
Diffstat (limited to 'Source/Core/InputCommon/ControlReference/ControlReference.cpp')
-rw-r--r--Source/Core/InputCommon/ControlReference/ControlReference.cpp26
1 files changed, 10 insertions, 16 deletions
diff --git a/Source/Core/InputCommon/ControlReference/ControlReference.cpp b/Source/Core/InputCommon/ControlReference/ControlReference.cpp
index 1d3d62e8c3..56a1ad133f 100644
--- a/Source/Core/InputCommon/ControlReference/ControlReference.cpp
+++ b/Source/Core/InputCommon/ControlReference/ControlReference.cpp
@@ -29,22 +29,16 @@ bool ControlReference::InputGateOn()
void ControlReference::UpdateReference(ciface::Core::DeviceContainer& devices,
const ciface::Core::DeviceQualifier& default_device)
{
- delete parsed_expression;
- parsed_expression = nullptr;
-
+ Expression* expr;
ControlFinder finder(devices, default_device, IsInput());
- m_parse_status = ParseExpression(expression, finder, &parsed_expression);
-}
-
-ControlReference::~ControlReference()
-{
- delete parsed_expression;
+ m_parse_status = ParseExpression(expression, finder, &expr);
+ m_parsed_expression.reset(expr);
}
int ControlReference::BoundCount() const
{
- if (parsed_expression)
- return parsed_expression->num_controls;
+ if (m_parsed_expression)
+ return m_parsed_expression->num_controls;
else
return 0;
}
@@ -54,7 +48,7 @@ ExpressionParseStatus ControlReference::GetParseStatus() const
return m_parse_status;
}
-ControlReference::ControlReference() : range(1), parsed_expression(nullptr)
+ControlReference::ControlReference() : range(1), m_parsed_expression(nullptr)
{
}
@@ -83,8 +77,8 @@ bool OutputReference::IsInput() const
//
ControlState InputReference::State(const ControlState ignore)
{
- if (parsed_expression && InputGateOn())
- return parsed_expression->GetValue() * range;
+ if (m_parsed_expression && InputGateOn())
+ return m_parsed_expression->GetValue() * range;
return 0.0;
}
@@ -98,8 +92,8 @@ ControlState InputReference::State(const ControlState ignore)
//
ControlState OutputReference::State(const ControlState state)
{
- if (parsed_expression && InputGateOn())
- parsed_expression->SetValue(state);
+ if (m_parsed_expression && InputGateOn())
+ m_parsed_expression->SetValue(state);
return 0.0;
}