diff options
| author | Patrick Venture <venture@google.com> | 2018-10-23 09:32:52 -0700 |
|---|---|---|
| committer | Patrick Venture <venture@google.com> | 2018-10-23 09:34:23 -0700 |
| commit | f77d5a573de3e073e8352aed2d8b4ecf584ee2a6 (patch) | |
| tree | 9acf38719372f64e3c6a6112677ed8d15d2925fe /pid | |
| parent | adc9e8636760383be821485908412b2ba7a66422 (diff) | |
| download | phosphor-pid-control-f77d5a573de3e073e8352aed2d8b4ecf584ee2a6.tar.gz phosphor-pid-control-f77d5a573de3e073e8352aed2d8b4ecf584ee2a6.zip | |
cleanup: move from copy and pointer to just const reference
Originally code passed the object by value, and then later by pointer to
that copy. Convert the code to be more performant by using a const
reference at all layers of access for this object.
Change-Id: Icdf0dfdb54d8adc29af4d05d841533626a484921
Signed-off-by: Patrick Venture <venture@google.com>
Diffstat (limited to 'pid')
| -rw-r--r-- | pid/fancontroller.cpp | 4 | ||||
| -rw-r--r-- | pid/fancontroller.hpp | 2 | ||||
| -rw-r--r-- | pid/thermalcontroller.cpp | 5 | ||||
| -rw-r--r-- | pid/thermalcontroller.hpp | 2 | ||||
| -rw-r--r-- | pid/util.cpp | 24 | ||||
| -rw-r--r-- | pid/util.hpp | 2 |
6 files changed, 20 insertions, 19 deletions
diff --git a/pid/fancontroller.cpp b/pid/fancontroller.cpp index f085927..f622698 100644 --- a/pid/fancontroller.cpp +++ b/pid/fancontroller.cpp @@ -25,7 +25,7 @@ std::unique_ptr<PIDController> FanController::CreateFanPid(ZoneInterface* owner, const std::string& id, const std::vector<std::string>& inputs, - ec::pidinfo initial) + const ec::pidinfo& initial) { if (inputs.size() == 0) { @@ -34,7 +34,7 @@ std::unique_ptr<PIDController> auto fan = std::make_unique<FanController>(id, inputs, owner); ec::pid_info_t* info = fan->get_pid_info(); - InitializePIDStruct(info, &initial); + InitializePIDStruct(info, initial); return fan; } diff --git a/pid/fancontroller.hpp b/pid/fancontroller.hpp index c081ce1..e0e79e7 100644 --- a/pid/fancontroller.hpp +++ b/pid/fancontroller.hpp @@ -19,7 +19,7 @@ class FanController : public PIDController static std::unique_ptr<PIDController> CreateFanPid(ZoneInterface* owner, const std::string& id, const std::vector<std::string>& inputs, - ec::pidinfo initial); + const ec::pidinfo& initial); FanController(const std::string& id, const std::vector<std::string>& inputs, ZoneInterface* owner) : diff --git a/pid/thermalcontroller.cpp b/pid/thermalcontroller.cpp index d7ea5ae..f9d1e11 100644 --- a/pid/thermalcontroller.cpp +++ b/pid/thermalcontroller.cpp @@ -21,7 +21,8 @@ std::unique_ptr<PIDController> ThermalController::CreateThermalPid( ZoneInterface* owner, const std::string& id, - const std::vector<std::string>& inputs, float setpoint, ec::pidinfo initial) + const std::vector<std::string>& inputs, float setpoint, + const ec::pidinfo& initial) { // ThermalController currently only supports precisely one input. if (inputs.size() != 1) @@ -34,7 +35,7 @@ std::unique_ptr<PIDController> ThermalController::CreateThermalPid( ec::pid_info_t* info = thermal->get_pid_info(); thermal->set_setpoint(setpoint); - InitializePIDStruct(info, &initial); + InitializePIDStruct(info, initial); return thermal; } diff --git a/pid/thermalcontroller.hpp b/pid/thermalcontroller.hpp index e38938f..9b2da71 100644 --- a/pid/thermalcontroller.hpp +++ b/pid/thermalcontroller.hpp @@ -17,7 +17,7 @@ class ThermalController : public PIDController static std::unique_ptr<PIDController> CreateThermalPid(ZoneInterface* owner, const std::string& id, const std::vector<std::string>& inputs, float setpoint, - ec::pidinfo initial); + const ec::pidinfo& initial); ThermalController(const std::string& id, const std::vector<std::string>& inputs, diff --git a/pid/util.cpp b/pid/util.cpp index 9004059..8b24fb2 100644 --- a/pid/util.cpp +++ b/pid/util.cpp @@ -19,21 +19,21 @@ #include <cstring> #include <iostream> -void InitializePIDStruct(ec::pid_info_t* info, ec::pidinfo* initial) +void InitializePIDStruct(ec::pid_info_t* info, const ec::pidinfo& initial) { std::memset(info, 0x00, sizeof(ec::pid_info_t)); - info->ts = initial->ts; - info->p_c = initial->p_c; - info->i_c = initial->i_c; - info->ff_off = initial->ff_off; - info->ff_gain = initial->ff_gain; - info->i_lim.min = initial->i_lim.min; - info->i_lim.max = initial->i_lim.max; - info->out_lim.min = initial->out_lim.min; - info->out_lim.max = initial->out_lim.max; - info->slew_neg = initial->slew_neg; - info->slew_pos = initial->slew_pos; + info->ts = initial.ts; + info->p_c = initial.p_c; + info->i_c = initial.i_c; + info->ff_off = initial.ff_off; + info->ff_gain = initial.ff_gain; + info->i_lim.min = initial.i_lim.min; + info->i_lim.max = initial.i_lim.max; + info->out_lim.min = initial.out_lim.min; + info->out_lim.max = initial.out_lim.max; + info->slew_neg = initial.slew_neg; + info->slew_pos = initial.slew_pos; } void DumpPIDStruct(ec::pid_info_t* info) diff --git a/pid/util.hpp b/pid/util.hpp index 0f37afe..a80e07f 100644 --- a/pid/util.hpp +++ b/pid/util.hpp @@ -6,6 +6,6 @@ * Given a configuration structure, fill out the information we use within the * PID loop. */ -void InitializePIDStruct(ec::pid_info_t* info, ec::pidinfo* initial); +void InitializePIDStruct(ec::pid_info_t* info, const ec::pidinfo& initial); void DumpPIDStruct(ec::pid_info_t* info); |

