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