From 2d51bf579f4c782951a3b9e7cd40327cdeb8b6b6 Mon Sep 17 00:00:00 2001 From: Michael Maltese Date: Fri, 9 Dec 2016 13:57:01 -0800 Subject: ControlReference: put parsed_expression in a unique_ptr --- .../ControlReference/ControlReference.cpp | 26 +++++++++------------- 1 file changed, 10 insertions(+), 16 deletions(-) (limited to 'Source/Core/InputCommon/ControlReference/ControlReference.cpp') 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; } -- cgit v1.2.3