From 1cdbb0946666b182f6cd3fe8f5d810c536b8ef72 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Wed, 13 Dec 2017 12:06:14 +1100 Subject: [PATCH] AP_ServoRelayEvents: 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 --- .../AP_ServoRelayEvents/AP_ServoRelayEvents.h | 26 +++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/libraries/AP_ServoRelayEvents/AP_ServoRelayEvents.h b/libraries/AP_ServoRelayEvents/AP_ServoRelayEvents.h index 4301cdf451..757b5aaf59 100644 --- a/libraries/AP_ServoRelayEvents/AP_ServoRelayEvents.h +++ b/libraries/AP_ServoRelayEvents/AP_ServoRelayEvents.h @@ -11,12 +11,18 @@ class AP_ServoRelayEvents { public: - static AP_ServoRelayEvents create(AP_Relay &_relay) { - return AP_ServoRelayEvents{_relay}; + AP_ServoRelayEvents(AP_Relay &_relay) + : relay(_relay) + , mask(0) + , type(EVENT_TYPE_RELAY) + , start_time_ms(0) + , delay_ms(0) + , repeat(0) + , channel(0) + , servo_value(0) + { } - constexpr AP_ServoRelayEvents(AP_ServoRelayEvents &&other) = default; - /* Do not allow copies */ AP_ServoRelayEvents(const AP_ServoRelayEvents &other) = delete; AP_ServoRelayEvents &operator=(const AP_ServoRelayEvents&) = delete; @@ -31,18 +37,6 @@ public: void update_events(void); private: - AP_ServoRelayEvents(AP_Relay &_relay) - : relay(_relay) - , mask(0) - , type(EVENT_TYPE_RELAY) - , start_time_ms(0) - , delay_ms(0) - , repeat(0) - , channel(0) - , servo_value(0) - { - } - AP_Relay &relay; uint16_t mask;