From 9b4fef4d5096e8c430ce88796b4c256d5857dae2 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 13 Dec 2017 12:06:14 +1100 Subject: [PATCH] AP_RPM: removed create() method for objects See discussion here: https://github.com/ArduPilot/ardupilot/issues/7331 we were getting some uninitialised variables. While it only showed up in AP_SbusOut, it means we can't be sure it won't happen on other objects, so safest to remove the approach Thanks to assistance from Lucas, Peter and Francisco --- libraries/AP_RPM/AP_RPM.h | 6 +----- libraries/AP_RPM/examples/RPM_generic/RPM_generic.cpp | 2 +- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/libraries/AP_RPM/AP_RPM.h b/libraries/AP_RPM/AP_RPM.h index 07b6e7b7c5..3b3007588e 100644 --- a/libraries/AP_RPM/AP_RPM.h +++ b/libraries/AP_RPM/AP_RPM.h @@ -29,9 +29,7 @@ class AP_RPM friend class AP_RPM_Backend; public: - static AP_RPM create() { return AP_RPM{}; } - - constexpr AP_RPM(AP_RPM &&other) = default; + AP_RPM(); /* Do not allow copies */ AP_RPM(const AP_RPM &other) = delete; @@ -95,8 +93,6 @@ public: bool enabled(uint8_t instance) const; private: - AP_RPM(); - RPM_State state[RPM_MAX_INSTANCES]; AP_RPM_Backend *drivers[RPM_MAX_INSTANCES]; uint8_t num_instances:2; diff --git a/libraries/AP_RPM/examples/RPM_generic/RPM_generic.cpp b/libraries/AP_RPM/examples/RPM_generic/RPM_generic.cpp index 9d84d7e242..283ad99687 100644 --- a/libraries/AP_RPM/examples/RPM_generic/RPM_generic.cpp +++ b/libraries/AP_RPM/examples/RPM_generic/RPM_generic.cpp @@ -26,7 +26,7 @@ void loop(); const AP_HAL::HAL& hal = AP_HAL::get_HAL(); -static AP_RPM RPM = AP_RPM::create(); +static AP_RPM RPM; char sensor_state;