DataFlash: 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
This commit is contained in:
parent
15026c6898
commit
fd14dedcff
@ -53,21 +53,17 @@ public:
|
||||
FUNCTOR_TYPEDEF(print_mode_fn, void, AP_HAL::BetterStream*, uint8_t);
|
||||
FUNCTOR_TYPEDEF(vehicle_startup_message_Log_Writer, void);
|
||||
|
||||
static DataFlash_Class create(const char *firmware_string, const AP_Int32 &log_bitmask) {
|
||||
return DataFlash_Class{firmware_string, log_bitmask};
|
||||
}
|
||||
DataFlash_Class(const char *firmware_string, const AP_Int32 &log_bitmask);
|
||||
|
||||
/* Do not allow copies */
|
||||
DataFlash_Class(const DataFlash_Class &other) = delete;
|
||||
DataFlash_Class &operator=(const DataFlash_Class&) = delete;
|
||||
|
||||
// get singleton instance
|
||||
static DataFlash_Class *instance(void) {
|
||||
return _instance;
|
||||
}
|
||||
|
||||
constexpr DataFlash_Class(DataFlash_Class &&other) = default;
|
||||
|
||||
/* Do not allow copies */
|
||||
DataFlash_Class(const DataFlash_Class &other) = delete;
|
||||
DataFlash_Class &operator=(const DataFlash_Class&) = delete;
|
||||
|
||||
void set_mission(const AP_Mission *mission);
|
||||
|
||||
// initialisation
|
||||
@ -248,8 +244,6 @@ protected:
|
||||
bool is_critical);
|
||||
|
||||
private:
|
||||
DataFlash_Class(const char *firmware_string, const AP_Int32 &log_bitmask);
|
||||
|
||||
#define DATAFLASH_MAX_BACKENDS 2
|
||||
uint8_t _next_backend;
|
||||
DataFlash_Backend *backends[DATAFLASH_MAX_BACKENDS];
|
||||
|
@ -91,7 +91,7 @@ public:
|
||||
private:
|
||||
|
||||
AP_Int32 log_bitmask;
|
||||
DataFlash_Class dataflash = DataFlash_Class::create("DF AllTypes 0.2", log_bitmask);
|
||||
DataFlash_Class dataflash{"DF AllTypes 0.2", log_bitmask};
|
||||
void print_mode(AP_HAL::BetterStream *port, uint8_t mode);
|
||||
|
||||
void Log_Write_TypeMessages();
|
||||
|
@ -41,7 +41,7 @@ public:
|
||||
private:
|
||||
|
||||
AP_Int32 log_bitmask;
|
||||
DataFlash_Class dataflash = DataFlash_Class::create("DF Test 0.1", log_bitmask);
|
||||
DataFlash_Class dataflash{"DF Test 0.1", log_bitmask};
|
||||
void print_mode(AP_HAL::BetterStream *port, uint8_t mode);
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user